2

我使用MPI_SendrecvMPI 函数在进程之间传递数据数组。我使用 mpi4py 在 Python 中执行此操作,但我很确定我的问题与使用的语言无关。

我真正想要的是将驻留在另一个进程上的数组添加到现有的本地数组中。这应该对所有进程都完成,所以我使用该MPI_Sendrecv函数一次性发送和接收数组。然后我可以将接收到的数组添加recvbuf到本地数组中,我就完成了。

recvbuf但是,如果我可以保存拥有一个单独数组的步骤,并且简单地将数据直接接收到本地数组中而不覆盖现有数据,而是使用一些操作(在我的情况下是添加)来更新它,那就太好了。

我想我正在寻找的是一个组合MPI_Sendrecv/MPI_Reduce功能。MPI中是否存在这样的功能?

4

1 回答 1

1

MPI_Recvreduce就是你要找的。不幸的是,它还不存在。MPI 论坛一直在考虑将其添加到标准的未来版本中,但尚未被采用,并且不会出现在即将到来的 MPI 3.1 中。

于 2015-03-25T12:58:27.377 回答