我正在建立基于MPI的C++库。我想知道如何在单个进程中出现错误后正确终止应用程序(即所有进程)。假设我们有一个类似的功能:

void SomeFunction()
{
    {do stuff here...}
    if (error)
    {
        {MPI_Calls?}
    }
}

实际上,所有进程将在大约同一时间调用此函数,但是if -branch通常将称为单个进程。应该进行什么MPI调用才能与其他进程进行通信,以使其中一个进程出现错误并且应终止应用程序?可以将其封装在独立的Error类中吗?

最佳答案

您应该为此使用 MPI_Abort 。它告诉所有进程停止运行;它等效于C中MPI的exit命令。

10-05 22:48