我使用MPI_Sendrecv
MPI 函数在进程之间传递数据数组。我使用 mpi4py 在 Python 中执行此操作,但我很确定我的问题与使用的语言无关。
我真正想要的是将驻留在另一个进程上的数组添加到现有的本地数组中。这应该对所有进程都完成,所以我使用该MPI_Sendrecv
函数一次性发送和接收数组。然后我可以将接收到的数组添加recvbuf
到本地数组中,我就完成了。
recvbuf
但是,如果我可以保存拥有一个单独数组的步骤,并且简单地将数据直接接收到本地数组中而不覆盖现有数据,而是使用一些操作(在我的情况下是添加)来更新它,那就太好了。
我想我正在寻找的是一个组合MPI_Sendrecv
/MPI_Reduce
功能。MPI中是否存在这样的功能?