2016-02-29 11 views
8

आमतौर पर जब मैं mpirun का उपयोग करता हूं, तो मैं अपने कंप्यूटर पर वास्तव में अधिक प्रोसेसर का उपयोग करके इसे "ओवरलोड" कर सकता हूं। उदाहरण के लिए, मेरे चार-कोर मैक पर, मैं mpirun -np 29 python -c "print 'hey'" कोई समस्या नहीं चला सकता।mpirun - पर्याप्त स्लॉट उपलब्ध नहीं हैं

$ mpirun -np 25 python -c "print 'hey'" 
-------------------------------------------------------------------------- 
There are not enough slots available in the system to satisfy the 25 slots 
that were requested by the application: 
    python 

Either request fewer slots for your application, or make more slots available 
for use. 
-------------------------------------------------------------------------- 

क्यों नहीं "overclocking" mpirun यहाँ काम कर रहा है: मैं एक और मशीन पर अब कर रहा हूँ, तो निम्न त्रुटि फेंक है जो? क्या कोई तरीका है कि मैं इस त्रुटि संदेश को दूर कर सकता हूं और उपलब्ध होने से अधिक प्रोसेसर के साथ सफलतापूर्वक चला सकता हूं?

+0

के साथ मेरे लिए चाल शायद आप ओवरलोड या ओवरक्लॉक के बजाय ओवरसब्सक्राइब का मतलब है। बीटीडब्ल्यू, आप किस एमपीआई कार्यान्वयन का उपयोग करते हैं? – Harald

+0

@ हाराल्ड मुझे इस प्रश्न को कुछ एमपीआई से संबंधित प्रश्नों पर मिला है, और जवाब यह है कि मुझे अभी पता नहीं है। क्या यह गैर-प्रशासक के लिए यह जानकारी ढूंढना संभव है? – kilojoules

+0

'mpirun --version' पैदावार' (ओपन एमपीआई) 1.7.3' – kilojoules

उत्तर

7

https://www.open-mpi.org/faq/?category=running#oversubscribing के अनुसार आप होस्टफाइल का उपयोग करके अपने नोड को ओवरसब्सक्राइब कर सकते हैं। आगे बढ़ने से पहले, सावधान रहें कि इस तरह आप नोड के प्रदर्शन को गंभीर रूप से खराब कर सकते हैं। साथ ही, यदि आप सिस्टम चलाने के लिए उपयोग की जाने वाली प्रणाली कतार प्रणाली का उपयोग कर रही है, तो यह मान्य नहीं हो सकती है।

पहले एक hostfile (नाम hostfile) युक्त

localhost slots=25 

बस

की तरह अपने एप्लिकेशन को चलाने बनाने
mpirun --hostfile hostfile -np 25 python -c "print 'hey'" 
+0

कूल। ऐसा लगता है कि मेरी कतार प्रणाली ओवरसब्सक्राइब करने की अनुमति नहीं देती है '100 स्लॉट को संतुष्ट करने के लिए सिस्टम में पर्याप्त स्लॉट उपलब्ध नहीं हैं जिन्हें आवेदन – kilojoules

5

जाहिर oversubscribing mpirun साथ विकल्प "--oversubscribe" का उपयोग कर प्राप्त किया जा सकता - किया चलने वाले टोक़/माउ

+0

द्वारा अनुरोध किया गया था, यह स्वीकृत उत्तर से बहुत अच्छा लगता है। ध्यान दें कि '--oversubscribe' ध्वज OpenMPI 3.x की एक विशेषता है। यह ध्वज OpenMPI 2.x में मौजूद नहीं है, लेकिन यहां डिफ़ॉल्ट रूप से oversubscription की अनुमति है। –

+0

खैर ... ओपीएमपी 3.0 मौजूद नहीं था जब ओपी ने सवाल उठाया। यह देखना अच्छा लगता है कि ओपनम्पी ने oversubscription को आसान बना दिया। – Harald

संबंधित मुद्दे