小编And*_*dre的帖子

使用 MPI4PY 快速失败

在使用 mpi4py 运行 MPI 脚本时,我希望有以下行为:当任何进程抛出异常时,mpirun(及其产生的进程)应立即以非零错误代码退出。但是相反,我发现即使一个或多个进程抛出异常,执行也会继续。

我正在使用带有 OpenMPI 2.1.2 的 mpi4py 3.0.0。我正在使用 mpirun --verbose -mca orte_abort_on_non_zero_status 1 -n 4 python my_script.py. 我希望这会在睡眠被击中之前立即结束,但是,等级 != 0 sleep 的进程:

import time
import mpi4py

def main():
    import mpi4py.MPI
    mpi_comm = mpi4py.MPI.COMM_WORLD
    if mpi_comm.rank == 0:
        raise ValueError('Failure')


    print('{} continuing to execute'.format(mpi_comm.rank))
    time.sleep(10)
    print('{} exiting'.format(mpi_comm.rank)


if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得我想要的行为(如果任何进程失败,则迅速失败)?

谢谢!

openmpi mpi4py

5
推荐指数
1
解决办法
1010
查看次数

MPI通过SSH运行什么命令?

我已经安装了OpenMPI,并且正在使用mpiexec在多个节点上运行脚本。OpenMPI要求我在其上运行mpiexec命令的节点具有对群集中其他节点的SSH访问权限。

OpenMPI通过SSH专门做什么来启动其他节点上的进程?当然,它运行我的MPI脚本,但是如何运行MPI,例如,为每个节点分配一个等级?

谢谢。

openmpi

0
推荐指数
1
解决办法
817
查看次数

标签 统计

openmpi ×2

mpi4py ×1