首页 > 解决方案 > 杀死所有机器中的 MPI 进程

问题描述

假设我在 25 台不同的机器上运行一个涉及 25 个进程的 MPI 程序。该程序在其中一个称为“master”的地方启动,命令如下

mpirun -n 25 --hostfile myhostfile.txt python helloworld.py

这是在 Linux 上使用一些 bash 脚本执行的,它使用 mpi4py。有时,在执行过程中,我想停止所有机器上的程序。我不在乎这是否做得很好,因为我可能需要的数据已经保存了。

通常,我在“master”的终端上按Ctrl+ C,我认为它的工作原理如上所述。这是真的?换句话说,它会在所有机器上停止这个特定的 MPI 程序吗?

我尝试的另一种方法是在“master”中获取进程的 PID 并将其杀死。我也不确定。

上述方法是否按描述工作?如果没有,你还有什么建议?请注意,我想避免为此目的使用 MPI 调用,就像此处此处MPI_Abort的一些其他讨论所建议的那样。

标签: pythonparallel-processingmpikill

解决方案


推荐阅读