MPI - 如何将avalue发送到数组中的特定位置

时间:2017-02-17 13:35:35

标签: c++ mpi

我想要将值发送到另一个进程的数组中的位置。 所以

1st process: MPI_ISend (&val..., process, ..)
2nd process: MPI_Recv (&array[i], ..., process, ...)

所以我知道第一个进程的i号,我也知道,我不能使用变量 - 首先发送i然后发送val,因为其他进程可以改变i(第二个进程正在接受来自其他进程的消息)

1 个答案:

答案 0 :(得分:1)

首先,其他发送/接收不应/不能覆盖i。你应该清楚地分开你的信息。这就是tag的用途!此外,rank_2可以分隔哪个排名确实发送了数据。因此,您可以为等待来自的消息的每个等级设置一个i

最后,您可能想要查看单向MPI通信(MPI_Win)。有了这种技术,rank_1就可以“掉落”。消息直接进入rank_2数组中只有rank_1知道的位置。