MPI流程之间是否共享特殊变量?

时间:2010-05-26 20:38:45

标签: mpi

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

由于

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

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

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