我想用蒔蘿替換MPI4PY的內置Pickle
序列化。根據doc,_p_Pickle類應該有2個屬性dumps
和loads
。然而,蟒蛇說,有沒有這樣的屬性,當我嘗試以下方法mpi4py:替換內置序列號
from mpi4py Import MPI
MPI._p_Pickle.dumps
- > AttributeError的:對象類型「mpi4py.MPI._p_Pickle」有沒有屬性「傾銷」
凡具備dumps
和loads
走了?
我想用蒔蘿替換MPI4PY的內置Pickle
序列化。根據doc,_p_Pickle類應該有2個屬性dumps
和loads
。然而,蟒蛇說,有沒有這樣的屬性,當我嘗試以下方法mpi4py:替換內置序列號
from mpi4py Import MPI
MPI._p_Pickle.dumps
- > AttributeError的:對象類型「mpi4py.MPI._p_Pickle」有沒有屬性「傾銷」
凡具備dumps
和loads
走了?
您可能正在使用舊版本。使用1.3.1
而不是1.2.x
。用mpi4py.__version__
檢查版本號。如果您使用的是1.3.1
或更新版本,則可以使用dill
或cloudpickle
或其他一些自定義串行器的序列號重載dumps
和loads
。
>>> import mpi4py
>>> mpi4py.__version__
'1.3.1'
在V2.0中,您可以通過
MPI.pickle.dumps = dill.dumps
MPI.pickle.loads = dill.loads
改變它看來,文檔仍然是來自2012年
更新 對於V3.0看到here,即:
MPI.pickle.__init__(dill.dumps, dill.loads)
也許我使用的是舊版本?如何檢查mpi4py版本?當我嘗試「MPI.VERSION」時,它說2 ... MPI.Get_Version給出了(版本,Subversion)對應的(2,1)。自從最新版本是1.3以來,我很困惑。什麼...... –
也許'MPI.Version'告訴你下劃線MPI實現的版本。你在使用MPICH(最新版本:3.0)嗎?或openmpi(1.7)?或...... mpicc -show'的輸出是什麼? – francis