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.phpexit 函数只是终止调用进程。另一方面,MPI_Abort

做出“最佳尝试”以中止 comm 组中的所有任务

不仅仅是调用进程。

【讨论】:

正确。但根据我的经验,当一个进程中止时,MPI 会自动中止所有剩余的进程。 @Arham:我的猜测是这取决于特定的 MPI 架构/拓扑,而不是 API 可以保证发生的事情 - 它需要一种方法来查看一个进程的死亡。 也许简单的 exit() 调用并不能保证错误代码返回给操作系统。

以上是关于MPI_Abort() 与 exit()的主要内容,如果未能解决你的问题,请参考以下文章

exit函数与_exit

exit()与_exit()的区别

Linux C _exit函数与exit函数的联系与区别

system.exit system.exit systim.exit(-1)含义与区别

linux系统调用:exit()与_exit()函数详解

exit与exit,return三者区别(详解)