【发布时间】:2020-11-16 21:37:48
【问题描述】:
考虑下面的程序,它提供了一个字节用于填充,这是不够的。
import pickle
from mpi4py import MPI
s = ''
f = pickle.dumps(s)
print(len(f))
w = MPI.COMM_WORLD.irecv(len(f)+1)
MPI.COMM_WORLD.send(f, dest=0)
f = w.wait()
print(len(f))
它产生:
Traceback (most recent call last):
File "...", line 10, in <module>
f = w.wait()
File "mpi4py/MPI\Request.pyx", line 235, in mpi4py.MPI.Request.wait
File "mpi4py/MPI\msgpickle.pxi", line 411, in mpi4py.MPI.PyMPI_wait
mpi4py.MPI.Exception: Message truncated, error stack:
MPI_Wait(request=0x000001C6A3EC78D8, status0x00000073023EF3A0) failed
Message truncated; 11 bytes received but buffer size is 11
我如何知道要向消息中添加多少额外内容,以保证传输成功?
【问题讨论】: