我在努力学习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..。从所有procs引发此错误:
TypeError: message: expecting buffer or list/tuple我还没有找到任何关于Sendrecv的相当完整的文档。知道我做错了什么吗?
发布于 2015-08-28 20:27:05
如果有人感兴趣,那么Sendrecv (我使用的)和sendrecv (注意小写)是两个不同的例程。Sendrecv与缓冲区一起工作。sendrecv是更通用的,并且可以很好地完成我想要做的事情。我唯一能找到这个讨论的地方是这里。
https://stackoverflow.com/questions/32278498
复制相似问题