mpi4py:替换内置序列化

时间:2014-02-14 12:32:53

标签: serialization pickle mpi4py dill

我想用dill替换MPI4PY的内置Pickle - 序列化。根据{{​​3}},类_p_Pickle应该有2个名为dumpsloads的属性。但是,python说当我尝试以下

时没有这样的属性
from mpi4py Import MPI
MPI._p_Pickle.dumps 

- > AttributeError:类型对象'mpi4py.MPI._p_Pickle'没有属性'dumps'

dumpsloads去了哪里?

2 个答案:

答案 0 :(得分:3)

在v2.0中,您可以通过

进行更改
MPI.pickle.dumps = dill.dumps
MPI.pickle.loads = dill.loads

似乎文档仍然是2012年。

<强>更新 对于v3.0,请参见here,即:

MPI.pickle.__init__(dill.dumps, dill.loads)

答案 1 :(得分:0)

您可能正在使用旧版本。使用1.3.1而不是1.2.x。使用mpi4py.__version__检查版本号。如果您使用的是1.3.1或更新版本,则可以使用dumpsloads或其他一些自定义序列化程序的序列化来重载dillcloudpickle。< / p>

>>> import mpi4py
>>> mpi4py.__version__
'1.3.1'