mpi4py: Replace built-in serialization

一曲冷凌霜 提交于 2019-12-24 02:13:46

问题


I'd like to replace MPI4PY's built-in Pickle-serialization with dill. According to the doc the class _p_Pickle should have 2 attributes called dumps and loads. However, python says there are no such attributes when i try the following

from mpi4py Import MPI
MPI._p_Pickle.dumps 

-> AttributeError: type object 'mpi4py.MPI._p_Pickle' has no attribute 'dumps'

Where have dumps and loads gone?


回答1:


In v2.0 you can change it via

MPI.pickle.dumps = dill.dumps
MPI.pickle.loads = dill.loads

It seems that the documentation is still from 2012.

Update For v3.0 see here, i.e.:

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



回答2:


You are probably using an older version. Use 1.3.1 not 1.2.x. Check the version number with mpi4py.__version__. If you are using 1.3.1 or newer, you can overload dumps and loads with serialization from dill, or cloudpickle, or a some other custom serializer.

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


来源:https://stackoverflow.com/questions/21779541/mpi4py-replace-built-in-serialization

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!