MPI 中的屏障:如何实现屏障以使进程相互等待
Posted
技术标签:
【中文标题】MPI 中的屏障:如何实现屏障以使进程相互等待【英文标题】:Barrier in MPI: How to implement barrier to make processes wait for one another 【发布时间】:2021-05-14 07:09:09 【问题描述】:有没有办法在 MPI 代码中添加障碍。
我的意思是说,我希望所有不同的处理器首先完成直到一个点,然后从那里继续。也就是说,一个处理器必须等待其他处理器完成代码直到该区域,然后才继续执行代码的剩余部分。
例如,
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 中有没有办法做到这一点?
【问题讨论】:
【参考方案1】:即一个处理器必须等待其他处理器完成 代码直到该区域,然后只进行到剩余部分 代码。
是的,你要找的是套路MPI_Barrier:
阻塞,直到通信器中的所有进程都达到此 例行公事。
备注
阻塞调用者,直到通信器中的所有进程都调用 它;也就是说,只有在所有成员之后,调用才会在任何进程返回 通讯器已进入通话。
要了解有关何时使用 MPI_Barrier 的更多信息,您可以阅读何时使用 I need to use MPI_Barrier()?
【讨论】:
以上是关于MPI 中的屏障:如何实现屏障以使进程相互等待的主要内容,如果未能解决你的问题,请参考以下文章