performance - MPI 中的屏障:如何实现屏障以使进程相互等待
问题描述
有没有办法在 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 中做到这一点?
解决方案
也就是说,一个处理器必须等待其他处理器完成代码直到该区域,然后才继续执行代码的其余部分。
是的,您正在寻找的是例程MPI_Barrier:
阻塞,直到通信器中的所有进程都到达此例程。
笔记
阻塞调用者,直到通信器中的所有进程都调用它;也就是说,只有在通信器的所有成员都进入调用之后,调用才会在任何进程中返回。
要了解有关何时使用 MPI_Barrier 的更多信息,您可以阅读何时需要使用 MPI_Barrier()?
推荐阅读
- java - 查找由多个组合子数组组成的数组的索引
- ios - 在 iOS 上缺少“会话 cookie”,使用了 React Native WebView
- google-cloud-platform - 使用 flex-template 运行流式数据流作业时模板启动失败
- tensorflow-lite - 多个批次在 TensorFlow Lite 中正常运行的条件是什么?
- javascript - 使用 Django 模板在 Javascript 中从数据库中获取数据
- android - 如何获得解决 Android 底页的目标状态?
- node.js - Docker Compose 与 React、Angular 和 Python 服务器
- plot - 如何在 Julia 中绘制形状
- php - 在php中计算带有条件的关联数组
- jakarta-ee - 无法将 HttpServletRequest 注入 jakarta 休息服务资源