我有一堆 MPI 进程来回交换请求消息。进程不知道哪些其他进程会向它们发送消息,或者发送多少消息。鉴于这种情况,我想要一种有效的方法来了解所有其他进程是否认为自己已完成发送消息。
这将通过以下 MPI_Barrier 的非阻塞版本完美完成,我们将其称为 MPI_Ibarrier:
int MPI_Ibarrier(MPI_Comm comm, MPI_Request* request);
MPI_Ibarrier
会立即返回,并且对请求对象的标准操作会在每个人都达到障碍时让我们知道。
有没有办法在 MPI 2 中有效地模拟这种行为(即,没有官方的非阻塞集合)?