【问题标题】:Kill an mpi process杀死一个 mpi 进程
【发布时间】:2011-07-28 09:30:37
【问题描述】:

我想知道一个 MPI 进程是否可以向另一个 MPI 进程发送终止信号?

或者不同的是,当其中一个进程仍然处于活动状态时,有没有办法优雅地退出 MPI 环境? (即 mpi_abort() 打印一条错误消息)。

谢谢

【问题讨论】:

标签: mpi parallel-processing


【解决方案1】:

不,这在使用 MPI 库的 MPI 应用程序中是不可能的。

单个进程不会知道其他进程的位置,也不会知道其他进程的进程 ID - MPI 规范中没有任何内容可以实现您想要的终止。

如果您要手动执行此操作,那么您需要 MPI_Alltoall 来在整个系统中交换进程 ID 和主机名,然后当您想要杀死某些东西时,您需要生成 ssh/rsh 来访问所需的节点。总而言之,它不便携,不干净。

MPI_Abort 是实现您想要实现的目标的正确方法。来自 Open MPI 手册:

“此例程做出“最佳尝试”以中止通信组中的所有任务。” (即 MPI_Abort(MPI_COMM_WORLD, -1) 是您所需要的。

MPI_Abort 期间的任何输出都是特定于机器的 - 因此您可能会或可能不会收到您提到的错误消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多