मुझे वर्चुअल मशीन पर अजगर हैलो वर्ल्ड 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
सही ढंग से काम किया।