2012-07-06 22 views
5

में साझा लाइब्रेरी लोड हो रहा है मैं एमपीआई रन का उपयोग कर टोक़ शेड्यूलर का उपयोग करके अपना प्रोग्राम चलाने की कोशिश कर रहा हूं। हालांकि मेरी पीबीएस फ़ाइल में मैं द्वाराओपन-एमपीआई/एमपीआई-रन

export LD_LIBRARY_PATH=/path/to/library 

सभी लाइब्रेरी लोड फिर भी यह त्रुटि देता है अर्थात

error while loading shared libraries: libarmadillo.so.3: 
cannot open shared object file: No such file or directory. 

मैं त्रुटि लगता है कि सभी नोड्स में सेट नहीं चर LD_LIBRARY_PATH में निहित है। मैं इसे कैसे काम करूंगा?

+0

क्या आप यहां अपनी पीबीएस लिपि पोस्ट कर सकते हैं? – chrisaycock

उत्तर

16

LD_LIBRARY_PATH एमपीआई प्रक्रियाओं में स्वचालित रूप से निर्यात नहीं किया जाता है, जो mpirun द्वारा उत्पन्न होता है। आप

mpirun -x LD_LIBRARY_PATH ... 

का उपयोग LD_LIBRARY_PATH का मूल्य बढ़ाने के लिए करना चाहिए। यह भी सुनिश्चित करें कि क्लस्टर में सभी नोड्स पर निर्दिष्ट पथ मौजूद है और libarmadillo.so.3 हर जगह उपलब्ध है।

+2

यदि ओपन एमपीआई देशी टोक़/टीएम समर्थन के साथ संकलित किया गया था, तो LD_LIBRARY_PATH (और शेष पर्यावरण) स्वचालित रूप से आवंटन में सभी नोड्स के लिए प्रचारित किया जाना चाहिए। यदि ओपन एमपीआई देशी टोक़ समर्थन के साथ नहीं बनाया गया था, तो मुझे लगता है कि आप लॉन्च करने के लिए आरएसएस/एसएसएच का उपयोग कर रहे हैं, इस मामले में "-x LD_LIBRARY_PATH" खंड आवश्यक है। मैं वास्तव में टोक़/टीएम समर्थन के साथ ओएमपीआई के पुनर्निर्माण की सलाह दूंगा; यह कई कारणों से आरएसएच/एसएसएच समर्थन से बेहतर है। –

+0

आपको धन्यवाद। मैं इस शर्ट के साथ गाड़ी चला रहा था .... एलडी_LIBRARY_PATH निर्यात करना बच्चे को उन चरों का उपयोग करने की अनुमति देता है, लेकिन यह पता चला है कि यह नहीं है। –

+0

@ ग्रेगके। निर्यात उसी नोड पर लॉन्च की गई प्रक्रियाओं के लिए केवल काम करता है जहां 'mpiexec' चलता है क्योंकि बाद वाले की बाल प्रक्रियाएं होती हैं। रिमोट नोड्स पर लॉन्च की गई प्रक्रियाएं संबंधित ओआरटीई चरवाहे डिमन के बच्चे हैं और सीधे 'mpiexec' के पर्यावरण का उत्तराधिकारी नहीं हैं बल्कि केवल पर्यावरण जो अग्रेषित किया जाता है और अतिरिक्त रूप से डेमॉन द्वारा सेट किया जाता है। (मैं गलत हो सकता हूं; जेफ स्क्वायर बेहतर जानते हैं) –

3

कुछ सिस्टमों पर, आपका पर्यावरण हमेशा mpirun के माध्यम से प्रचारित नहीं होता है। आपको अपने .bashrc फ़ाइल में उन सभी चर सेट करना चाहिए।