mpiexec और पायथन mpi4py रैंक 0 और आकार 1 देता है - पायथन, एमपीपी, mpi4py, mpiexec

मुझे वर्चुअल मशीन पर अजगर हैलो वर्ल्ड mpi4py कोड चलाने में समस्या है।

Hello.py कोड है:

#!/usr/bin/python
#hello.py
from mpi4py import MPI

comm = MPI.COMM_WORLD

size = comm.Get_size()
rank = comm.Get_rank()

print "hello world from process ", rank,"of", size

मैंने इसे mpiexec और mpirun का उपयोग करके चलाने की कोशिश की, लेकिन यह अच्छी तरह से नहीं चल रहा है। उत्पादन:

$ mpirun -c 4 python hello.py
hello world from process  0 of 1
hello world from process  0 of 1
hello world from process  0 of 1
hello world from process  0 of 1

और mpiexec से:

$ mpiexec -n 4 python hello.py
hello world from process  0 of 1
hello world from process  0 of 1
hello world from process  0 of 1
hello world from process  0 of 1

उन्हें लगता है कि रैंक और कॉम का आकार नहीं मिल रहा है। इसका क्या कारण हो सकता है? इसे कैसे हल करें?

mpiexec --version
mpiexec (OpenRTE) 1.6.5

mpirun --version
mpirun (Open MPI) 1.6.5

पुण्य मशीन पर सिस्टम Ubuntu 14.04 है।

कोई विचार क्यों? धन्यवाद!

उत्तर:

जवाब के लिए 0 № 1

अजगर मॉड्यूल को चलाते समय मेरे पास एक ही मुद्दा था emcee। यह मुझे एक त्रुटि देगा:

"ValueError: Tried to create an MPI pool, but there was only one MPI process available.
Need at least two."

मैंने अपने विशेष क्लस्टर के लिए जो समाधान पाया, वह एक अलग एमपीआई का उपयोग करना था। मेरे कोड के साथ काम किया intel-mpi तथा mpich2 लेकिन नहीं openmpi। इस प्रणाली के लिए, मुझे केवल एमपीआई स्विच करना था। मेरे में PBS स्क्रिप्ट मैंने इस्तेमाल की module load mpich2 के बजाय module load openmpi। इस मामले में mpiexec तथा mpirun सही ढंग से काम किया।