2

我是 MPI 编程世界的新手,我想知道 MPI 进程之间是否共享一些变量并且可以从任何进程访问而无需发送/接收它们?

谢谢

4

2 回答 2

2

没有。很多时候,您的 MPI 代码将同时在多台计算机上运行,​​因此除了通过网络传输消息外,它们无法共享数据。

对于多核机器,大多数 MPI 实现会检测进程是否在同一芯片上运行,并使用优化的消息传递算法来避免网络上的任何通信,并且在某些情况下重用缓冲区以避免中间内存复制。

于 2010-07-01T17:48:43.823 回答
2

不。没有“用户空间”变量或缓冲区在 MPI 作业的等级之间自动共享。

有一些由 MPI 环境设置的公共变量(例如排名总数),并保证在所有排名中都是“相同的” - 但不是“共享”的(例如,有一个本地只读副本所有等级的值)。在许多情况下,这些值是通过 MPI_* 调用访问的,并且根据实现的具体情况,也可以通过其他方式获得。

于 2010-05-26T21:55:09.230 回答