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

最佳答案

MPI_Recvreduce就是你要找的不幸的是,它还不存在。这是MPI论坛一直在考虑添加到标准的未来版本中的内容,但尚未被采用,也不会出现在即将推出的MPI3.1中。

09-29 20:10