单进程出错后如何正确退出MPI应用
How to properly exit MPI application after error in a single process
我正在构建一个基于 MPI 的 C++ 库。我想知道如何在单个进程出错后正确终止应用程序(即所有进程)。假设我们有一个像这样的函数:
void SomeFunction()
{
{do stuff here...}
if (error)
{
{MPI_Calls?}
}
}
事实上,这个函数将被所有进程几乎同时调用,但 if
-分支通常被称为单个进程。应该进行哪些 MPI 调用,以便与其他进程进行通信,告知其中一个进程中存在错误并且应终止应用程序?这可以封装在一个独立的 Error
class?
你应该使用 MPI_Abort
。它告诉所有进程停止运行;它等同于 MPI C 中的 exit
命令。
我正在构建一个基于 MPI 的 C++ 库。我想知道如何在单个进程出错后正确终止应用程序(即所有进程)。假设我们有一个像这样的函数:
void SomeFunction()
{
{do stuff here...}
if (error)
{
{MPI_Calls?}
}
}
事实上,这个函数将被所有进程几乎同时调用,但 if
-分支通常被称为单个进程。应该进行哪些 MPI 调用,以便与其他进程进行通信,告知其中一个进程中存在错误并且应终止应用程序?这可以封装在一个独立的 Error
class?
你应该使用 MPI_Abort
。它告诉所有进程停止运行;它等同于 MPI C 中的 exit
命令。