2014-02-14 3 views
1

MPI4PY에 내장 된 Pickle을 직렬로 대체하고 싶습니다. doc에 따르면 _p_Pickle 클래스에는 dumpsloads이라는 2 개의 속성이 있어야합니다. 그러나, 파이썬 내가 다음을 시도 할 때 이러한 속성이 없다고 말합니다mpi4py : 빌트인 직렬화를 대체하십시오

from mpi4py Import MPI 
MPI._p_Pickle.dumps 

-> AttributeError : 유형의 객체 mpi4py.MPI._p_Pickle는 '더 속성'덤프 '

dumps

loads 사라가 없습니다 ?

+0

어쩌면 이전 버전을 사용하고 있습니까? 어떻게 2 mpi4py 버전을 확인 하시겠습니까? "MPI.VERSION"을 시도하면 2라고 표시됩니다 ... MPI.Get_Version은 (버전, Subversion)에 해당하는 (2,1)을 제공합니다. Im은 최신 버전이 1.3이기 때문에 꽤 혼란 스럽습니다. What ... –

+0

아마도'MPI.Version'은 밑줄 친 MPI 구현 버전을 알려줍니다. MPICH (최신 버전 : 3.0)로 작업하고 있습니까? 또는 openmpi (1.7)? 또는 ...'mpicc -show'의 결과는 무엇입니까? – francis

답변

0

아마도 이전 버전을 사용하고 계신 것 같습니다. 1.3.1이 아닌 1.2.x을 사용하십시오. 버전 번호를 mpi4py.__version__으로 확인하십시오. 1.3.1 이상을 사용하는 경우 및 loadsdill 또는 cloudpickle 또는 다른 사용자 지정 serializer에서 serialization하여 오버로드 할 수 있습니다. 2.0에서

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

당신이이 문서는 2012 년

업데이트에서 여전히 것 같다

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

를 통해 변경할 수 있습니다 버전 3.0에 대한 즉, here 참조 :

MPI.pickle.__init__(dill.dumps, dill.loads) 
관련 문제