- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想知道哪种方法是确保在 MPI 中的 n 个进程之间独占访问共享资源(例如内存窗口)的最佳方法。我试过 MPI_Win_lock 和 MPI_Win_fence 但它们似乎没有按预期工作,即:我可以看到多个进程同时进入临界区(MPI_Win_lock 和 MPI_Win_unlock 之间的代码,其中包含 MPI_Get 和/或 MPI_Put)。
非常感谢您的建议。谢谢。
最佳答案
在 MPI 2 中,您无法真正进行原子操作。这是在 MPI 3 中使用 MPI_Fetch_and_op
引入的。这就是您的关键数据被修改的原因。
此外,请注意“MPI_Win_lock”。如所述here :
The name of this routine is misleading. In particular, this routine need not block, except when the target process is the calling process.
实际的阻塞过程是MPI_Win_unlock
,意思是只有从这个过程返回后你才能确定put
和get
的值是正确的。也许这更好地描述了here :
MPI passive target operations are organized into access epochs that are bracketed by MPI Win lock and MPI Win unlock calls. Clever MPI implementations [10] will combine all the data movement operations (puts, gets, and accumulates) into one network transaction that occurs at the unlock.
同一份文档也可以为您的问题提供解决方案,即关键数据不是以原子方式写入的。它通过使用 mutex 来实现这一点,这是一种确保在同一时间只有一个进程可以访问数据的机制。
我建议你阅读这篇文档:他们提出的解决方案并不难实现。
关于algorithm - MPI:确保独占访问共享内存 (RMA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37236499/
我想知道哪种方法是确保在 MPI 中的 n 个进程之间独占访问共享资源(例如内存窗口)的最佳方法。我试过 MPI_Win_lock 和 MPI_Win_fence 但它们似乎没有按预期工作,即:我可以
我阅读了 MPI 标准并找到了一个包含 MPI_Put 和 MPI_Get 操作的部分。然而,我不清楚这些功能的基础上给 RMA 带来了什么好处。什么时候用这样的函数代替异步MPI_Isend、MPI
我正在尝试使用MD作为因变量运行元回归。我想向rma.uni函数添加数字主持人(发布年份)。 到目前为止的公式: metafor::rma.uni(yi = MCID12,sei = SE12,met
我正在尝试重新实现 rma函数来自 TradingView pinescript但我不能让它输出与原始函数相同的结果。 下面是我开发的代码,代码基本就是ema功能,但与 rma 有很大不同功能 plo
我正在使用 Magento 1.4.1.1 和 AW RMA extension在上面。 安装此扩展程序后,我在管理中看到了 RMA 请求网格和待定 RMA 请求网格。 我希望能够根据 EAV(自定义
我正在尝试使用 MPI_Win_lock 和 MPI_Win_unlock 对 MPI 的 RMA 操作进行简单测试。程序只是让进程0更新进程1中的整数值并显示出来。 下面的程序运行正确(至少结果对我
因为到目前为止我没有找到我的问题的答案并且我正处于对这个问题发疯的边缘,所以我只是问这个折磨我的问题;-) 我正在研究我已经编程的节点消除算法的并行化。目标环境是一个集群。 在我的并行程序中,我区分了
以下简短的 Fortran90 程序只要包含 MPI_GET 调用就会崩溃。等级 1 尝试从等级 0 读取值并挂起在 MPI_WIN_UNLOCK 中。 Rank 0 尝试在 MPI_BARRIER
我有一个 the following data structure ,大约研究 i = 50,实验 j = 75,条件 k = 200。 在第 k 级,我有相关的度量。对于大约 20 个研究(25 个
我是一名优秀的程序员,十分优秀!