问题描述
我的意思是障碍,我希望所有不同的处理器先完成到一个点,然后从那里继续。即处理器必须等待其他处理器完成代码直到该区域,然后才继续执行代码的其余部分。
例如
int main()
{
.
.
.
//I want all my processors to do till this and
wait for other processers to complete till this point,and then resume the remaining part
.
.
.
}
有没有办法在 MPIch 中做到这一点?
解决方法
即一个处理器必须等待其他处理器完成 代码直到那个区域,然后才继续到剩下的部分 代码。
是的,您正在寻找的是例程MPI_Barrier:
阻塞直到通信器中的所有进程都到达这个 例行公事。
注意事项
阻塞调用者,直到通信器中的所有进程都调用了 它;也就是说,只有在所有成员之后,调用才会在任何进程中返回 通讯器已进入通话。
要了解有关何时使用 MPI_Barrier 的更多信息,您可以阅读何时使用 I need to use MPI_Barrier()?