MPI_Abort() 与 exit()
Posted
技术标签:
【中文标题】MPI_Abort() 与 exit()【英文标题】:MPI_Abort() vs exit() 【发布时间】:2019-02-23 18:06:30 【问题描述】:有什么好的理由喜欢
MPI_Abort(MPI_COMM_WORLD, MY_ERROR_CODE);
到
exit(MY_ERROR_CODE);
在用 C 编写的基于 MPI 的并行代码中?到目前为止,我从未使用过前者。
【问题讨论】:
【参考方案1】:阅读MPI_Abort
函数的文档:https://www.open-mpi.org/doc/v2.0/man3/MPI_Abort.3.php。 exit
函数只是终止调用进程。另一方面,MPI_Abort
做出“最佳尝试”以中止 comm 组中的所有任务
不仅仅是调用进程。
【讨论】:
正确。但根据我的经验,当一个进程中止时,MPI 会自动中止所有剩余的进程。 @Arham:我的猜测是这取决于特定的 MPI 架构/拓扑,而不是 API 可以保证发生的事情 - 它需要一种方法来查看一个进程的死亡。 也许简单的 exit() 调用并不能保证错误代码返回给操作系统。以上是关于MPI_Abort() 与 exit()的主要内容,如果未能解决你的问题,请参考以下文章