2
我想知道是否有一种方式MPI进程发送杀死信号到另一个MPI进程?杀死一个mpi进程
或者不同的是,有一种方法可以在MPI环境中一个进程仍处于活动状态时退出? (即mpi_abort()打印错误消息)。
感谢
我想知道是否有一种方式MPI进程发送杀死信号到另一个MPI进程?杀死一个mpi进程
或者不同的是,有一种方法可以在MPI环境中一个进程仍处于活动状态时退出? (即mpi_abort()打印错误消息)。
感谢
没有,这是不可能的使用MPI库MPI应用程序中。
单个进程不会意识到其他进程的位置,也不知道其他进程的进程ID - 并且MPI规范中没有任何内容可以使您想要的杀手。
如果您手动执行此操作,那么您需要MPI_Alltoall在整个系统中交换进程ID和主机名,然后当您想要杀死某些东西时需要产生ssh/rsh来访问所需的节点。总而言之,它不便携,不干净。
MPI_Abort是您尝试实现的正确方法。从Open MPI手册:
“此例程使”中止通讯组中所有任务的最佳尝试“成为”最佳尝试“。 (即MPI_Abort(MPI_COMM_WORLD,-1)是你所需要的
MPI_Abort期间的任何输出将特定的机器 - 所以你可能会,也可能不会,接受你所提到的错误消息
在这里看到:。HTTP ://stackoverflow.com/questions/5433697/terminating-all-processes-with-mpi/5434937#5434937。 – suszterpatt 2011-04-02 20:43:18