我正在尝试学习 mpi4py。以下测试代码对我来说看起来很简单
#shift.py
from mpi4py import MPI
comm=MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()
nxt = (rank+1)%size
prev = (rank-1)%size
num = rank
num2 = 0
print rank, num
num2 = comm.Sendrecv(num,dest=nxt,source=prev)
print rank, num2
但是运行的东西....
mpirun -np 4 python shift.py
...从所有过程中引发此错误:
TypeError: message: expecting buffer or list/tuple
我无法在 Sendrecv 上找到任何相当完整的文档。知道我做错了什么吗?