mpirun.lam - क्लाउड में ऑनलाइन

यह कमांड mpirun.lam है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


mpirun - LAM नोड्स पर MPI प्रोग्राम चलाएँ।

SYNOPSIS


mpirun [-fhvO] [-c # | -एनपी #] [-डी | -wd dir] [-ger | -nger] [-sigs | -nsigs] [-ssi कुंजी
मूल्य] [-nw | -w] [-nx] [-pty | -npty] [-s नोड] [-t | -टॉफ़ | -टन] [-टीवी] [-एक्स
VAR1[=VALUE1][,VAR2[=VALUE2],...]] [[-p prefix_str] [-sa | -sf]] [कहां] कार्यक्रम [--
तर्क]

नोट: हालाँकि प्रत्येक व्यक्तिगत रूप से वैकल्पिक है, कम से कम एक जहां, -एनपीईया, -c होना चाहिए
उपरोक्त फॉर्म में निर्दिष्ट (यानी, जब स्कीमा का उपयोग नहीं किया जाता है)।

एमपिरुन [-fhvO] [-D | -wd dir] [-ger | -nger] [-sigs | -nsigs] [-ssi कुंजी मान] [-nw | -w]
[-nx] [-pty | -npty] [-t | -टॉफ़ | -टन] [-टीवी] [-एक्स
VAR1[=VALUE1][,VAR2[=VALUE2],...]] स्कीमा

नोट: RSI -c2c और -लैमड विकल्प अब अप्रचलित हैं. उपयोग -एसएसआई बजाय। "एसएसआई" देखें
खंड, नीचे।

शीघ्र सारांश


यदि आप बस यह खोज रहे हैं कि एमपीआई एप्लिकेशन कैसे चलाया जाए, तो आप संभवतः इसका उपयोग करना चाहेंगे
निम्नलिखित कमांड लाइन:

% mpirun C my_mpi_application

यह की एक प्रति चलाएगा my_mpi_application वर्तमान LAM ब्रह्मांड में प्रत्येक CPU पर।
वैकल्पिक रूप से, "सी" के स्थान पर "एन" का उपयोग किया जा सकता है, जो दर्शाता है कि की एक प्रति
my_mpi_application वर्तमान LAM में प्रत्येक नोड (सीपीयू के विपरीत) पर चलाया जाना चाहिए
ब्रह्मांड। अंत में:

% mpirun -np 4 my_mpi_application

इसका उपयोग LAM को स्पष्ट रूप से चार प्रतियां चलाने के लिए कहने के लिए किया जा सकता है my_mpi_application, शेड्यूलिंग
एलएएम ब्रह्मांड में सीपीयू द्वारा एक राउंड-रॉबिन फैशन। अधिक जानकारी के लिए इस पृष्ठ का शेष भाग देखें
विवरण, विशेष रूप से "स्थान नामकरण" अनुभाग।

विकल्प


के दो रूप हैं mpirun कमांड - प्रोग्रामों के लिए एक (यानी, एसपीएमडी-शैली)।
अनुप्रयोग), और एक अनुप्रयोग स्कीमा के लिए (देखें)। एप्सकेमा(5)). के दोनों रूप mpirun
डिफ़ॉल्ट रूप से निम्नलिखित विकल्पों का उपयोग करें: -nger -w. इनमें से प्रत्येक को उनके द्वारा ओवरराइड किया जा सकता है
समकक्ष विकल्प, नीचे वर्णित हैं।

इसके अतिरिक्त, mpirun उस निर्देशिका का नाम भेजेगा जहां इसे स्थानीय पर लागू किया गया था
प्रत्येक दूरस्थ नोड के लिए नोड, और उस निर्देशिका में बदलने का प्रयास करें। देखें
नीचे "वर्तमान कार्य निर्देशिका" अनुभाग।

-c # के लिए समानार्थी शब्द -एनपीई (निचे देखो)।

-D बनाई गई वर्तमान कार्यशील निर्देशिका के रूप में निष्पादन योग्य प्रोग्राम स्थान का उपयोग करें
प्रक्रियाएँ। निर्मित प्रक्रियाओं की वर्तमान कार्यशील निर्देशिका सेट की जाएगी
उपयोगकर्ता के प्रोग्राम को लागू करने से पहले। यह विकल्प परस्पर अनन्य है
-डब्ल्यूडी.

-f मानक I/O फ़ाइल डिस्क्रिप्टर को कॉन्फ़िगर न करें - डिफ़ॉल्ट का उपयोग करें।

-h इस कमांड पर उपयोगी जानकारी प्रिंट करें।

-ger GER (गारंटीड लिफ़ाफ़ा संसाधन) संचार प्रोटोकॉल और त्रुटि सक्षम करें
रिपोर्टिंग. देखना MPI(7) जीईआर के विवरण के लिए। यह विकल्प परस्पर है
अनन्य के साथ -nger.

-nger GER (गारंटीयुक्त लिफाफा संसाधन) अक्षम करें। यह विकल्प परस्पर अनन्य है
साथ में -ger.

-nsigs उपयोगकर्ता एप्लिकेशन में LAM कैच सिग्नल नहीं हैं। यह डिफ़ॉल्ट है, और
के साथ परस्पर अनन्य है -संकेत.

-एनपीई # दिए गए नोड्स पर प्रोग्राम की इतनी सारी प्रतियाँ चलाएँ। यह विकल्प इंगित करता है
कि निर्दिष्ट फ़ाइल एक निष्पादन योग्य प्रोग्राम है न कि कोई एप्लिकेशन स्कीमा।
यदि कोई नोड निर्दिष्ट नहीं है, तो शेड्यूलिंग के लिए सभी LAM नोड्स पर विचार किया जाता है; एलएएम करेगा
कार्यक्रमों को राउंड-रॉबिन फैशन, "रैपिंग अराउंड" (और) में शेड्यूल करें
यदि आवश्यक हो तो एक ही नोड पर एकाधिक प्रतियाँ शेड्यूल करना)।

-npty छद्म-ट्टी समर्थन अक्षम करें. जब तक आपको स्यूडो-ट्टी की समस्या न हो
समर्थन, आपको संभवतः इस विकल्प की आवश्यकता नहीं है। -पीटीआई के साथ परस्पर अनन्य।

-एनडब्ल्यूई बाहर निकलने से पहले सभी प्रक्रियाओं के पूरा होने की प्रतीक्षा न करें mpirun. यह विकल्प है
के साथ परस्पर अनन्य -w.

-एनएक्स LAM_MPI_*, LAM_IMPI_*, या IMPI_* वातावरण को स्वचालित रूप से निर्यात न करें
दूरस्थ नोड्स के लिए चर।

-O मल्टीकंप्यूटर सजातीय है. संदेश भेजते समय कोई डेटा रूपांतरण न करें.
यह ध्वज अब अप्रचलित हो गया है।

-पीटीआई छद्म-टीटी समर्थन सक्षम करें। अन्य बातों के अलावा, इसने लाइन-बफ़र्ड को सक्षम किया
आउटपुट (जो संभवतः आप चाहते हैं)। यह डिफ़ॉल्ट है. परस्पर
-npty के साथ विशेष.

-s नोड इस नोड से प्रोग्राम लोड करें. यह विकल्प कमांड लाइन पर मान्य नहीं है
यदि कोई एप्लिकेशन स्कीम निर्दिष्ट है।

-संकेत उपयोगकर्ता प्रक्रिया में LAM कैच सिग्नल रखें। यह विकल्प परस्पर अनन्य है
साथ में -nsigs.

-एसएसआई कुंजी मूल्य
विभिन्न एसएसआई मॉड्यूल के लिए तर्क भेजें। नीचे "एसएसआई" अनुभाग देखें।

-टी, टन सभी प्रक्रियाओं के लिए निष्पादन ट्रेस जनरेशन सक्षम करें। ट्रेस जनरेशन होगा
आगे कोई कार्रवाई न करते हुए आगे बढ़ें. ये विकल्प परस्पर अनन्य हैं
-टॉफ.

-टॉफ सभी प्रक्रियाओं के लिए निष्पादन ट्रेस जनरेशन सक्षम करें। के लिए पीढ़ी का पता लगाएं
प्रक्रियाओं के सामूहिक रूप से कॉल करने के बाद संदेश भेजने वाला ट्रैफ़िक शुरू हो जाएगा
एमपीआईएल_ट्रेस_ऑन(2). ध्यान दें कि डेटाटाइप्स और कम्युनिकेटर्स के लिए ट्रेस जेनरेशन
मर्जी इस पर ध्यान दिए बिना आगे बढ़ें कि संदेशों के लिए ट्रेस जेनरेशन सक्षम है या नहीं
नहीं। यह विकल्प परस्पर अनन्य है -t और टन.

टीवी टोटलव्यू डिबगर के अंतर्गत प्रक्रियाएं लॉन्च करें।

-v वाचाल हो; महत्वपूर्ण कदमों के पूरा होते ही उन पर रिपोर्ट करें।

-w पहले सभी एप्लिकेशन के बाहर निकलने की प्रतीक्षा करें mpirun बाहर निकलता है।

-डब्ल्यूडी दीर उपयोगकर्ता का प्रोग्राम निष्पादित होने से पहले निर्देशिका dir में बदलें। ध्यान दें कि यदि
la -डब्ल्यूडी विकल्प कमांड लाइन और एप्लिकेशन स्कीमा दोनों में दिखाई देता है,
स्कीमा को कमांड लाइन पर प्राथमिकता दी जाएगी। यह विकल्प परस्पर है
अनन्य के साथ -D.

-x निष्पादित करने से पहले निर्दिष्ट पर्यावरण चर को दूरस्थ नोड्स में निर्यात करें
कार्यक्रम। मौजूदा पर्यावरण चर निर्दिष्ट किए जा सकते हैं (उदाहरण देखें)।
अनुभाग, नीचे), या संबंधित मानों के साथ निर्दिष्ट नए चर नाम।
के लिए पार्सर -x विकल्प बहुत परिष्कृत नहीं है; यह समझ में ही नहीं आता
उद्धृत मूल्य. उपयोगकर्ताओं को पर्यावरण में चर सेट करने की सलाह दी जाती है, और फिर
उपयोग -x उन्हें निर्यात करना (परिभाषित नहीं करना)।

-SA चाहे वे विफल हों या नहीं, सभी एमपीआई प्रक्रियाओं की निकास स्थिति प्रदर्शित करें
सफलतापूर्वक चलाएँ.

-एसएफ सभी प्रक्रियाओं की निकास स्थिति केवल तभी प्रदर्शित करें जब उनमें से कोई एक विफल हो जाए।

-p उपसर्ग_str
[-sa] और [-sf] द्वारा प्रदर्शित प्रत्येक प्रक्रिया स्थिति रेखा को उपसर्ग करता है
उपसर्ग_str.

जहां नोड और/या सीपीयू पहचानकर्ताओं का एक सेट जो बताता है कि कहां से शुरू करना है कार्यक्रम. देखना
भूत(5) नोड और सीपीयू पहचानकर्ताओं के विवरण के लिए। mpirun मर्जी
निकटवर्ती रैंकों को शेड्यूल करें MPI_COMM_WORLD उसी नोड पर जब सीपीयू पहचानकर्ता
उपयोग किया जाता है। उदाहरण के लिए, यदि LAM को n4 पर 0 की CPU गणना और एक CPU के साथ बूट किया गया था
n2 पर 1 की गिनती और जहां C है, रैंक 0 से 3 तक को n0 पर रखा जाएगा, और
रैंक 4 और 5 को n1 पर रखा जाएगा।

आर्ग इन रनटाइम तर्कों को प्रत्येक नई प्रक्रिया में पास करें। ये हमेशा होना चाहिए
के लिए अंतिम तर्क mpirun. यदि कोई हो तो यह विकल्प कमांड लाइन पर मान्य नहीं है
एप्लिकेशन स्कीम निर्दिष्ट है.

वर्णन


का एक आह्वान mpirun LAM के अंतर्गत चलने वाला एक MPI एप्लिकेशन प्रारंभ करता है। यदि आवेदन
केवल एसपीएमडी है, एप्लिकेशन को निर्दिष्ट किया जा सकता है mpirun कमांड लाइन। यदि
एप्लिकेशन एमआईएमडी है, जिसमें कई प्रोग्राम शामिल हैं, इसमें एक एप्लिकेशन स्कीमा आवश्यक है
अलग फ़ाइल. देखना एप्सकेमा(5) एप्लिकेशन स्कीम सिंटैक्स के विवरण के लिए, लेकिन
इसमें अनिवार्य रूप से एकाधिक शामिल हैं mpirun कमांड लाइन, कमांड नाम को कम करें।
किसी प्रोग्राम के विभिन्न इंस्टेंटेशन के लिए अलग-अलग विकल्प निर्दिष्ट करने की क्षमता एक और बात है
एप्लिकेशन स्कीमा का उपयोग करने का कारण.

स्थान शब्दावली
जैसा ऊपर बताया गया है, mpirun वर्तमान एलएएम ब्रह्मांड में मनमाने स्थान निर्दिष्ट कर सकते हैं।
स्थान या तो सीपीयू द्वारा या नोड द्वारा निर्दिष्ट किए जा सकते हैं (सिंटैक्स में "कहां" द्वारा नोट किया गया है
अनुभाग, ऊपर)। ध्यान दें कि LAM किसी स्थान को निर्दिष्ट करते हुए प्रक्रियाओं को सीपीयू से नहीं जोड़ता है
"सीपीयू द्वारा" वास्तव में एसएमपी के लिए एक सुविधा तंत्र है जो अंततः नीचे मैप करता है
विशिष्ट नोड.

ध्यान दें कि LAM प्रभावी ढंग से MPI_COMM_WORLD रैंक को बाएँ से दाएँ बताता है,
इसकी परवाह किए बिना कि किस नामकरण का उपयोग किया गया है। यह महत्वपूर्ण हो सकता है क्योंकि विशिष्ट एम.पी.आई
प्रोग्राम अपने निकटतम पड़ोसियों (यानी, मायरैंक +/- एक्स) की तुलना में अधिक संवाद करते हैं
दूर के पड़ोसी. जब पड़ोसी एक ही नोड पर समाप्त हो जाते हैं, तो शमेम आरपीआई का उपयोग किया जा सकता है
नेटवर्क आरपीआई के बजाय संचार, जिसके परिणामस्वरूप तेज़ एमपीआई प्रदर्शन हो सकता है।

नोड द्वारा स्थान निर्दिष्ट करने से प्रति निर्दिष्ट नोड निष्पादन योग्य की एक प्रति लॉन्च होगी।
कैपिटल "एन" का उपयोग एलएएम को उन सभी उपलब्ध नोड्स का उपयोग करने के लिए कहता है जिन्हें लैम्बूट किया गया था (देखें)।
लैंबूट(1)). विशिष्ट नोड्स की रेंज को "nR[,R]*" फॉर्म में भी निर्दिष्ट किया जा सकता है
आर या तो एक एकल नोड संख्या या की सीमा में नोड संख्याओं की एक वैध श्रेणी निर्दिष्ट करता है
[0, num_nodes). उदाहरण के लिए:

एमपिरून एन ए.आउट
निष्पादन योग्य की एक प्रति चलाता है ए.आउट LAM ब्रह्मांड में सभी उपलब्ध नोड्स पर।
MPI_COMM_WORLD रैंक 0 n0 पर होगी, रैंक 1 n1 पर होगी, आदि।

mpirun n0-3 a.out
निष्पादन योग्य की एक प्रति चलाता है ए.आउट नोड्स 0 से 3 तक। MPI_COMM_WORLD रैंक 0
n0 पर होगा, रैंक 1 n1 पर होगा, आदि।

mpirun n0-3,8-11,15 a.out
निष्पादन योग्य की एक प्रति चलाता है ए.आउट नोड्स 0 से 3, 8 से 11 और 15 पर।
MPI_COMM_WORLD रैंकों को इस प्रकार क्रमित किया जाएगा: (0, n0), (1, n1), (2, n2), (3, n3),
(4, एन8), (5, एन9), (6, एन10), (7, एन11), (8, एन15)।

सीपीयू द्वारा निर्दिष्ट करना एमपीआई नौकरियों को लॉन्च करने का पसंदीदा तरीका है। आशय यह है कि
बूट स्कीमा के साथ प्रयोग किया जाता है लैंबूट(1) इंगित करेगा कि प्रत्येक नोड पर कितने सीपीयू उपलब्ध हैं,
और फिर एक एकल, सरल mpirun उन सभी को लॉन्च करने के लिए कमांड का उपयोग किया जा सकता है। जैसा
ऊपर उल्लेख किया गया है, सीपीयू निर्दिष्ट करना वास्तव में प्रक्रियाओं को सीपीयू से नहीं जोड़ता है - यह केवल एक है
एसएमपी पर लॉन्चिंग के लिए सुविधा तंत्र। अन्यथा, बाय-सीपीयू नोटेशन समान है
बाय-नोड नोटेशन के रूप में, सिवाय इसके कि "एन" और "एन" के बजाय "सी" और "सी" का उपयोग किया जाता है।

निम्नलिखित उदाहरण में मान लें कि एलएएम ब्रह्मांड में चार 4-वे एसएमपी शामिल हैं। इसलिए
c0-3 n0 पर हैं, c4-7 n1 पर हैं, c8-11 n2 पर हैं, और 13-15 n3 पर हैं।

एमपिरून सी ए.आउट
निष्पादन योग्य की एक प्रति चलाता है ए.आउट LAM जगत में सभी उपलब्ध सीपीयू पर।
यह आम तौर पर सभी एमपीआई नौकरियों (यहां तक ​​कि) को लॉन्च करने का सबसे सरल (और पसंदीदा) तरीका है
यदि यह प्रति नोड एक प्रक्रिया का समाधान करता है)। MPI_COMM_WORLD रैंक 0-3 n0 पर होगी,
रैंक 4-7 n1 पर होगी, रैंक 8-11 n2 पर होगी, और रैंक 13-15 n3 पर होगी।

mpirun c0-3 a.out
निष्पादन योग्य की एक प्रति चलाता है ए.आउट 0 से 3 तक के सीपीयू पर। सभी चार रैंक
MPI_COMM_WORLD MPI_COMM_WORLD पर होगा।

mpirun c0-3,8-11,15 a.out
निष्पादन योग्य की एक प्रति चलाता है ए.आउट सीपीयू 0 से 3, 8 से 11 और 15 पर।
MPI_COMM_WORLD रैंक 0-3 n0 पर होगी, 4-7 n2 पर होगी, और 8 n3 पर होगी।

यही कारण है कि बाय-नोड नामकरण की तुलना में बाय-सीपीयू नामकरण को प्राथमिकता दी जाती है
उदाहरण के माध्यम से दिखाया गया है। पहले सीपीयू उदाहरण को चलाने का प्रयास करने पर विचार करें (उसी के साथ)।
MPI_COMM_WORLD मैपिंग) बाय-नोड नामकरण के साथ - की एक प्रति चलाएँ ए.आउट हर एक के लिए
उपलब्ध सीपीयू, और संभावित रूप से एमपीआई को अधिकतम करने के लिए स्थानीय पड़ोसियों की संख्या को अधिकतम करें
प्रदर्शन। एक समाधान निम्नलिखित कमांड का उपयोग करना होगा:

mpirun n0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3 a.out

इस कार्य, लेकिन टाइप करने में निश्चित रूप से बेकार है। आमतौर पर बाय-सीपीयू का उपयोग करना आसान होता है
अंकन. कोई सोच सकता है कि निम्नलिखित समतुल्य है:

एमपिरुन एन-एनपी 16 ए.आउट

यह वह जगह है नहीं समतुल्य क्योंकि MPI_COMM_WORLD रैंक मैपिंग नोड द्वारा निर्दिष्ट की जाएगी
सीपीयू के बजाय. इसलिए रैंक 0 n0 पर होगी, रैंक 1 n1 पर होगी, आदि। ध्यान दें कि
हालाँकि, निम्नलिखित is समतुल्य, क्योंकि LAM "सी" के रूप में एक जगह की कमी की व्याख्या करता है:

एमपिरुन -एनपी 16 ए.आउट

हालाँकि, "सी" अधिक सुविधाजनक हो सकता है, खासकर बैच-क्यूइंग स्क्रिप्ट के लिए
क्योंकि कतार सबमिशन के बीच प्रक्रियाओं की सटीक संख्या भिन्न हो सकती है। बैच के बाद से
सिस्टम एक सामान्य स्क्रिप्ट के साथ उपलब्ध सीपीयू की अंतिम संख्या निर्धारित करेगा
प्रभावी ढंग से कहता है कि "आपने मुझे जो कुछ भी दिया है उस पर चलें" से अधिक पोर्टेबल/पुनः प्रयोज्य हो सकता है
स्क्रिप्ट।

अंत में, यह ध्यान दिया जाना चाहिए कि एकाधिक निर्दिष्ट करना जहां खंड पूरी तरह से हैं
स्वीकार्य. इस प्रकार, बाय-नोड और बाय-सीपीयू सिंटैक्स का मिश्रण भी मान्य है, यद्यपि
आम तौर पर उपयोगी नहीं है. उदाहरण के लिए:

एमपिरून सीएन ए.आउट

हालाँकि, कुछ मामलों में, एकाधिक निर्दिष्ट करना जहां खंड उपयोगी हो सकते हैं। एक पर विचार करें
समानांतर एप्लिकेशन जहां MPI_COMM_WORLD रैंक 0 एक "प्रबंधक" होगा और इसलिए उपभोग करेगा
बहुत कम सीपीयू चक्र क्योंकि यह आमतौर पर "कार्यकर्ता" प्रक्रियाओं के लौटने की प्रतीक्षा कर रहा है
परिणाम। इसलिए, संभवतः सभी उपलब्ध पर एक "कार्यकर्ता" प्रक्रिया चलाना वांछनीय है
सीपीयू, और एक अतिरिक्त प्रक्रिया चलाएँ जो "प्रबंधक" होगी:

mpirun c0 C प्रबंधक-कार्यकर्ता-कार्यक्रम

आवेदन स्कीमा or निष्पादन कार्यक्रम?
दो अलग-अलग रूपों में अंतर करने के लिए, mpirun कहाँ या के लिए कमांड लाइन को देखता है
-c विकल्प। यदि इनमें से कोई भी निर्दिष्ट नहीं है, तो कमांड लाइन पर नामित फ़ाइल को मान लिया जाता है
एक एप्लिकेशन स्कीम बनें. यदि इनमें से कोई एक या दोनों निर्दिष्ट हैं, तो फ़ाइल मान ली जाती है
एक निष्पादन योग्य प्रोग्राम होना। यदि कहां और -c दोनों निर्दिष्ट हैं, फिर की प्रतियां
प्रोग्राम को आंतरिक LAM शेड्यूलिंग के अनुसार निर्दिष्ट नोड्स/सीपीयू पर शुरू किया जाता है
नीति। केवल एक नोड निर्दिष्ट करना प्रभावी रूप से LAM को प्रोग्राम की सभी प्रतियाँ चलाने के लिए बाध्य करता है
एक जगह पर। अगर -c दिया गया है, लेकिन कहां नहीं, तो सभी LAM नोड्स पर सभी उपलब्ध CPU हैं
इस्तेमाल किया गया। यदि कहां दिया गया है, परंतु नहीं -c, फिर प्रत्येक नोड पर प्रोग्राम की एक प्रति चलाई जाती है।

कार्यक्रम हस्तांतरण
डिफ़ॉल्ट रूप से, LAM लक्ष्य नोड पर निष्पादन योग्य प्रोग्रामों की खोज करता है जहां एक विशेष
इन्स्टेन्शियेशन चलेगा. यदि फ़ाइल सिस्टम साझा नहीं किया गया है, तो लक्ष्य नोड्स हैं
सजातीय, और प्रोग्राम को बार-बार पुन: संकलित किया जाता है, LAM का होना सुविधाजनक हो सकता है
प्रोग्राम को स्रोत नोड (आमतौर पर स्थानीय नोड) से प्रत्येक लक्ष्य नोड में स्थानांतरित करें।
-s विकल्प इस व्यवहार को निर्दिष्ट करता है और एकल स्रोत नोड की पहचान करता है।

पता लगाने फ़ाइलें
LAM उपयोगकर्ता के PATH में निर्देशिकाओं को खोजकर एक निष्पादन योग्य प्रोग्राम की तलाश करता है
स्रोत नोड पर परिभाषित पर्यावरण चर। यह व्यवहार सुसंगत है
स्रोत नोड में लॉग इन करना और शेल से प्रोग्राम निष्पादित करना। दूरस्थ नोड्स पर,
"।" पथ होम निर्देशिका है.

LAM तीन निर्देशिकाओं में एक एप्लिकेशन स्कीमा ढूंढता है: स्थानीय निर्देशिका, मान
LAMAPPLDIR पर्यावरण चर, और laminstalldir/boot, जहां "laminstalldir" है
वह निर्देशिका जहाँ LAM/MPI स्थापित किया गया था।

स्टैण्डर्ड मैं / हे
LAM सभी दूरस्थ नोड्स पर UNIX मानक इनपुट को /dev/null पर निर्देशित करता है। स्थानीय नोड पर वह
लागू mpirun, मानक इनपुट से विरासत में मिला है mpirun. डिफ़ॉल्ट वही है जो पहले हुआ करता था
टर्मिनल तक परस्पर विरोधी पहुंच को रोकने के लिए -w विकल्प।

LAM सभी दूरस्थ नोड्स पर UNIX मानक आउटपुट और त्रुटि को LAM डेमॉन को निर्देशित करता है। लैम
सभी कैप्चर किए गए आउटपुट/त्रुटि को लागू किए गए नोड पर भेजता है mpirun और उस पर प्रिंट करता है
का मानक आउटपुट/त्रुटि mpirun. स्थानीय प्रक्रियाओं को मानक आउटपुट/त्रुटि विरासत में मिलती है
mpirun और इसे सीधे स्थानांतरित करें।

इस प्रकार विशिष्ट का उपयोग करके एलएएम अनुप्रयोगों के लिए मानक I/O को पुनर्निर्देशित करना संभव है
शेल पुनर्निर्देशन प्रक्रिया चालू mpirun.

% mpirun C my_app my_input my_output

ध्यान दें कि इस उदाहरण में केवल स्थानीय नोड (अर्थात, वह नोड जहां एमपिरुन का आह्वान किया गया था
from) stdin पर my_input से स्ट्रीम प्राप्त करेगा। अन्य सभी नोड्स पर stdin
/dev/null से बंधा होगा। हालाँकि, सभी नोड्स से स्टडआउट एकत्र किया जाएगा
my_output फ़ाइल.

RSI -f विकल्प ऊपर वर्णित मानक I/O का समर्थन करने के लिए आवश्यक सभी सेटअप से बचता है।
दूरस्थ प्रक्रियाएँ पूरी तरह से /dev/null की ओर निर्देशित होती हैं और स्थानीय प्रक्रियाएँ फ़ाइल को इनहेरिट करती हैं
से वर्णनकर्ता लैंबूट(1).

छद्म ट्टी समर्थन
RSI -पीटीआई विकल्प प्रक्रिया आउटपुट के लिए छद्म-ट्टी समर्थन सक्षम करता है (यह इसके द्वारा भी सक्षम है
गलती करना)। यह, अन्य बातों के अलावा, दूरस्थ नोड्स से लाइन बफ़र्ड आउटपुट की अनुमति देता है
(संभवतः आप यही चाहते हैं)। इस विकल्प को इसके साथ अक्षम किया जा सकता है -npty स्विच.

प्रक्रिया समाप्ति / संकेत हैंडलिंग
एमपीआई एप्लिकेशन चलाने के दौरान, यदि कोई रैंक असामान्य रूप से समाप्त हो जाती है (या तो पहले बाहर निकल जाती है
प्रेरक MPI_अंतिमीकरण, या सिग्नल के परिणामस्वरूप मरना), mpirun एक त्रुटि प्रिंट करेगा
संदेश भेजें और बाकी एमपीआई एप्लिकेशन को बंद कर दें।

डिफ़ॉल्ट रूप से, LAM/MPI उपयोगकर्ता प्रोग्राम में केवल एक सिग्नल के लिए सिग्नल हैंडलर स्थापित करता है
(डिफ़ॉल्ट रूप से SIGUSR2, लेकिन LAM कॉन्फ़िगर और निर्मित होने पर इसे ओवरराइड किया जा सकता है)।
इसलिए, उपयोगकर्ताओं के लिए LAM/MPI प्रोग्राम में अपने स्वयं के सिग्नल हैंडलर स्थापित करना सुरक्षित है
(एलएएम द्वारा प्रदान की गई प्रक्रिया की वापसी स्थिति की जांच करके सिग्नल द्वारा मृत्यु के मामलों को नोटिस करता है
ऑपरेटिंग सिस्टम)।

उपयोगकर्ता सिग्नल संचालकों को संभवतः एमपीआई स्थिति को साफ़ करने की कोशिश से बचना चाहिए - एलएएम न तो है
थ्रेड-सुरक्षित और न ही एसिंक-सिग्नल-सुरक्षित। उदाहरण के लिए, यदि कोई सेग फॉल्ट होता है एमपीआई_SEND
(शायद इसलिए कि एक ख़राब बफ़र पारित किया गया था) और यदि ऐसा है, तो एक उपयोगकर्ता सिग्नल हैंडलर लागू किया जाता है
उपयोगकर्ता हैंडलर आह्वान करने का प्रयास करता है MPI_अंतिमीकरण, LAM/MPI के बाद से बुरी चीजें हो सकती हैं
जब त्रुटि हुई तो पहले से ही "एमपीआई" में। तब से mpirun ध्यान देंगे कि प्रक्रिया समाप्त हो गई
सिग्नल के कारण, उपयोगकर्ता के लिए केवल सफ़ाई करना संभवतः आवश्यक (और सबसे सुरक्षित) नहीं है
गैर-एमपीआई राज्य.

अगर -संकेत विकल्प के साथ प्रयोग किया जाता है mpirun, LAM/MPI कई सिग्नल हैंडलर स्थापित करेगा
संकेतों को पकड़ने, त्रुटि संदेशों को प्रिंट करने और बाकी को खत्म करने के लिए प्रत्येक रैंक पर स्थानीय रूप से
एमपीआई आवेदन. यह कुछ हद तक अनावश्यक व्यवहार है क्योंकि अब इसे सभी द्वारा नियंत्रित किया जाता है
mpirun, लेकिन इसे पश्चगामी अनुकूलता के लिए छोड़ दिया गया है।

प्रक्रिया निकास वे स्थितियां
RSI -SA, -एसएफ, तथा -p पैरामीटर्स का उपयोग मौजूदा स्थितियों को प्रदर्शित करने के लिए किया जा सकता है
व्यक्तिगत एमपीआई प्रक्रियाएँ समाप्त होते ही। -SA निकास स्थितियों को प्रदर्शित करने के लिए बाध्य करता है
सभी प्रक्रियाओं के लिए; -एसएफ केवल तभी मौजूदा स्थितियाँ प्रदर्शित करता है जब कम से कम एक प्रक्रिया समाप्त हो जाती है
या तो सिग्नल या गैर-शून्य निकास स्थिति द्वारा (ध्यान दें कि आह्वान करने से पहले बाहर निकलें
MPI_अंतिमीकरण गैर-शून्य निकास स्थिति का कारण बनेगा)।

प्रत्येक प्रक्रिया की स्थिति, प्रति पंक्ति एक, निम्नलिखित प्रारूप में मुद्रित की जाती है:

प्रीफ़िक्स_स्ट्रिंग नोड पीआईडी ​​समाप्त स्थिति

If मारे गए तो फिर 1 है हैसियत सिग्नल नंबर है. अगर मारे गए तो फिर 0 है हैसियत निकास है
प्रक्रिया की स्थिति.

डिफ़ॉल्ट उपसर्ग_स्ट्रिंग "एमपिरुन:" है, लेकिन -p विकल्प का उपयोग इसे ओवरराइड करने के लिए किया जा सकता है
स्ट्रिंग.

वर्तमान काम कर रहे निर्देशिका
प्रक्रिया करने वाली निर्देशिका के संबंध में mpirun का डिफ़ॉल्ट व्यवहार बदल गया है
में शुरू किया जाएगा.

RSI -डब्ल्यूडी एमपिरुन का विकल्प उपयोगकर्ता को उनके पहले एक मनमाना निर्देशिका में बदलने की अनुमति देता है
कार्यक्रम का आह्वान किया गया है. इसका उपयोग एप्लिकेशन स्कीमा फ़ाइलों में कार्य निर्दिष्ट करने के लिए भी किया जा सकता है
विशिष्ट नोड्स पर और/या विशिष्ट अनुप्रयोगों के लिए निर्देशिकाएँ।

अगर -डब्ल्यूडी विकल्प स्कीमा फ़ाइल और कमांड लाइन, स्कीमा फ़ाइल दोनों में दिखाई देता है
निर्देशिका कमांड लाइन मान को ओवरराइड कर देगी।

RSI -D विकल्प वर्तमान कार्यशील निर्देशिका को उस निर्देशिका में बदल देगा जहाँ
निष्पादन योग्य रहता है। इसका उपयोग एप्लिकेशन स्कीमा फ़ाइलों में नहीं किया जा सकता. -डब्ल्यूडी परस्पर है
अनन्य के साथ -D.

यदि न तो -डब्ल्यूडी-D निर्दिष्ट हैं, स्थानीय नोड निर्देशिका नाम भेज देगा
प्रत्येक दूरस्थ नोड से mpirun को लागू किया गया था। दूरस्थ नोड्स फिर प्रयास करेंगे
उस निर्देशिका में बदलें. यदि वे विफल हो जाते हैं (उदाहरण के लिए, यदि निर्देशिका उस पर मौजूद नहीं है
नोड), वे उपयोगकर्ता की होम निर्देशिका से प्रारंभ करेंगे।

उपयोगकर्ता के प्रोग्राम को लागू करने से पहले सभी निर्देशिका परिवर्तन होते हैं; यह तब तक इंतजार नहीं करता
MPI_INIT कहा जाता है।

प्रक्रिया वातावरण
एमपीआई एप्लिकेशन में प्रक्रियाएं एलएएम डेमॉन से अपना वातावरण प्राप्त करती हैं
नोड जिस पर वे चल रहे हैं। LAM डेमॉन का वातावरण बूटिंग पर तय होता है
एलएएम के साथ लैंबूट(1) और आमतौर पर उपयोगकर्ता के शेल से विरासत में मिला है। मूल पर
नोड, यह वह शेल होगा जिसमें से लैंबूट(1) आह्वान किया गया था; दूरस्थ नोड्स पर, सटीक
पर्यावरण का निर्धारण बूट एसएसआई मॉड्यूल द्वारा किया जाता है जिसका उपयोग किया जाता है लैंबूट(1). आरएसएच बूट मॉड्यूल,
उदाहरण के लिए, दूरस्थ नोड्स पर LAM डेमॉन लॉन्च करने के लिए या तो rsh/ssh का उपयोग करता है, और आमतौर पर
LAM डेमॉन लॉन्च करने से पहले उपयोगकर्ता की एक या अधिक शेल-सेटअप फ़ाइलों को निष्पादित करता है।
गतिशील रूप से लिंक किए गए एप्लिकेशन चलाते समय जिसके लिए LD_LIBRARY_PATH वातावरण की आवश्यकता होती है
वेरिएबल सेट करने के लिए, यह सुनिश्चित करने के लिए ध्यान रखा जाना चाहिए कि बूट करते समय यह सही ढंग से सेट हो
लैम.

निर्यात किए गए वातावरण चर
सभी पर्यावरण चर जिन्हें LAM_MPI_*, LAM_IMPI_*, या IMPI_* के रूप में नामित किया गया है
स्वचालित रूप से स्थानीय और दूरस्थ नोड्स पर नई प्रक्रियाओं में निर्यात किया जाएगा। यह निर्यात कर रहा है
के साथ बाधित किया जा सकता है -एनएक्स विकल्प.

इसके अतिरिक्त, -x विकल्प mpirun विशिष्ट पर्यावरण चर निर्यात करने के लिए उपयोग किया जा सकता है
नई प्रक्रियाओं के लिए. जबकि का वाक्यविन्यास -x विकल्प नए की परिभाषा की अनुमति देता है
चर, ध्यान दें कि इस विकल्प के लिए पार्सर वर्तमान में बहुत परिष्कृत नहीं है - यह
उद्धृत मूल्यों को भी नहीं समझता। उपयोगकर्ताओं को इसमें वेरिएबल सेट करने की सलाह दी जाती है
पर्यावरण और उपयोग -x उन्हें निर्यात करने के लिए; उन्हें परिभाषित करने के लिए नहीं.

निशान पीढ़ी
दो स्विच एलएएम के तहत चलने वाली प्रक्रियाओं से ट्रेस जेनरेशन को नियंत्रित करते हैं और दोनों को अंदर होना चाहिए
वास्तव में उत्पन्न होने वाले निशानों की स्थिति। पहला स्विच किसके द्वारा नियंत्रित किया जाता है?
mpirun और दूसरा स्विच प्रारंभ में सेट किया गया है mpirun लेकिन रनटाइम के साथ टॉगल किया जा सकता है
एमपीआईएल_ट्रेस_ऑन(2) और एमपीआईएल_ट्रेस_ऑफ(2)। -t (टन समतुल्य है) और -टॉफ विकल्प सभी
पहला स्विच चालू करें. अन्यथा पहला स्विच बंद है और कॉल करता है एमपीआईएल_ट्रेस_ऑन(2)
एप्लिकेशन प्रोग्राम में अप्रभावी हैं। -t विकल्प दूसरा भी चालू करता है
स्विच करें। -टॉफ विकल्प दूसरा स्विच बंद कर देता है। देखना एमपीआईएल_ट्रेस_ऑन(2) और
लैमट्रेस(1) अधिक जानकारी के लिए।

MPI जानकारी रूपांतरण
LAM की MPI लाइब्रेरी MPI संदेशों को स्थानीय प्रतिनिधित्व से LAM प्रतिनिधित्व में परिवर्तित करती है
उन्हें भेजने पर और फिर उन्हें प्राप्त करने पर स्थानीय प्रतिनिधित्व में वापस। यदि मामला
एक एलएएम में मशीनों का एक सजातीय नेटवर्क शामिल होता है जहां स्थानीय प्रतिनिधित्व होता है
यह LAM प्रतिनिधित्व से भिन्न है, इसके परिणामस्वरूप अनावश्यक रूपांतरण हो सकते हैं।

RSI -O एलएएम को यह बताने के लिए स्विच आवश्यक हुआ करता था कि मल्टीकंप्यूटर है या नहीं
सजातीय या नहीं. LAM अब स्वचालित रूप से निर्धारित करता है कि कोई दिया गया MPI कार्य है या नहीं
सजातीय या नहीं. -O पश्चगामी संगतता के लिए ध्वज को चुपचाप स्वीकार कर लिया जाएगा,
लेकिन इसे नजरअंदाज कर दिया जाता है.

लघु उद्योग (प्रणाली सेवाएँ इंटरफेस)
RSI -एसएसआई स्विच विभिन्न एसएसआई मॉड्यूल के मापदंडों को पारित करने की अनुमति देता है। लैम का एसएसआई
मॉड्यूल में विस्तार से वर्णित हैं लम्सि(7). एसएसआई मॉड्यूल का एमपीआई पर सीधा प्रभाव पड़ता है
प्रोग्राम क्योंकि वे रन टाइम पर ट्यून करने योग्य पैरामीटर सेट करने की अनुमति देते हैं (जैसे कि कौन सा आरपीआई
संचार उपकरण ड्राइवर का उपयोग करना है, उस आरपीआई को कौन से पैरामीटर पास करने हैं, आदि)।

RSI -एसएसआई स्विच दो तर्क लेता है: कुंजी और मूल्यकुंजी तर्क आम तौर पर निर्दिष्ट करता है
कौन सा एसएसआई मॉड्यूल मूल्य प्राप्त करेगा। उदाहरण के लिए, कुंजी चयन करने के लिए "आरपीआई" का उपयोग किया जाता है
एमपीआई संदेशों के परिवहन के लिए किस आरपीआई का उपयोग किया जाना चाहिए। मूल्य तर्क वह मान है
पारित कर दिया गया है। उदाहरण के लिए:

एमपिरुन -एसएसआई आरपीआई लैमडी एन फू
LAM को "lamd" RPI का उपयोग करने और प्रत्येक नोड पर "foo" की एक प्रति चलाने के लिए कहता है।

एमपिरुन -एसएसआई आरपीआई टीसीपी एन फू
LAM को "tcp" RPI का उपयोग करने के लिए कहता है।

एमपिरुन -एसएसआई आरपीआई एसआईएसवी एन फू
LAM को "sysv" RPI का उपयोग करने के लिए कहता है।

और इसी तरह। LAM के RPI SSI मॉड्यूल का वर्णन किया गया है lamssi_rpi(7).

RSI -एसएसआई स्विच को अलग-अलग निर्दिष्ट करने के लिए कई बार इस्तेमाल किया जा सकता है कुंजी और / या मूल्य
तर्क। अगर वही कुंजी एक से अधिक बार निर्दिष्ट किया गया है, मूल्यs के साथ जुड़े हुए हैं
एक अल्पविराम (",") उन्हें अलग करता है।

ध्यान दें कि -एसएसआई स्विच पर्यावरण चर सेट करने के लिए बस एक शॉर्टकट है। NS
इसी प्रभाव को पहले संबंधित पर्यावरण चर सेट करके पूरा किया जा सकता है
दौड़ना mpirun. एलएएम सेट पर्यावरण चर के रूप हैं:
LAM_MPI_SSI_key=मान.

ध्यान दें कि -एसएसआई स्विच पहले से सेट किए गए किसी भी पर्यावरण चर को ओवरराइड करता है। यह भी ध्यान दें
वह अज्ञात कुंजी तर्क अभी भी पर्यावरण चर के रूप में सेट हैं - वे चेक नहीं किए गए हैं
(से mpirun) शुद्धता के लिए। अवैध या गलत मूल्य तर्क हो भी सकते हैं और नहीं भी
रिपोर्ट - यह विशिष्ट एसएसआई मॉड्यूल पर निर्भर करता है।

RSI -एसएसआई स्विच पुराने को अप्रचलित कर देता है -c2c और -लैमड स्विच. ये स्विच हुआ करते थे
प्रासंगिक क्योंकि LAM में एक समय में केवल दो RPI उपलब्ध हो सकते हैं: lamd RPI और एक
C2C RPI की. यह अब सच नहीं है - सभी आरपीआई अब उपलब्ध हैं और चुनने योग्य हैं
रन-टाइम. लैमडी आरपीआई का चयन ऊपर के उदाहरणों में दिखाया गया है। -c2c स्विच में कोई नहीं है
सीधा अनुवाद क्योंकि "C2C" अन्य सभी आरपीआई को संदर्भित करता था जो लैमड नहीं थे
आरपीआई. इस प्रकार, -एसएसआई आरपीआई मूल्य विशिष्ट वांछित आरपीआई (चाहे वह) का चयन करने के लिए उपयोग किया जाना चाहिए
"लैमड" या अन्य आरपीआई में से एक है)।

गारंटीकृत लिफाफा संसाधन
डिफ़ॉल्ट रूप से, LAM प्रत्येक MPI के लिए न्यूनतम मात्रा में संदेश लिफ़ाफ़ा बफ़रिंग की गारंटी देगा
प्रक्रिया जोड़ी और अतिप्रवाह का प्रयास करने वाली प्रक्रिया में बाधा डालेगी या त्रुटि की रिपोर्ट करेगी
यह सिस्टम संसाधन. यह मजबूती और डिबगिंग सुविधा एक मशीन में कार्यान्वित की जाती है
विशिष्ट तरीके से जब प्रत्यक्ष संचार का उपयोग किया जाता है। के माध्यम से सामान्य एलएएम संचार के लिए
LAM डेमॉन, एक प्रोटोकॉल का उपयोग किया जाता है। -nger विकल्प जीईआर और इसके लिए उठाए गए कदमों को अक्षम कर देता है
इसका समर्थन करें। LAM होने पर न्यूनतम GER को सिस्टम प्रशासक द्वारा कॉन्फ़िगर किया जाता है
स्थापित. देखना MPI(7) अधिक जानकारी के लिए।

उदाहरण


उपरोक्त "स्थान नामकरण" अनुभाग में उदाहरण भी अवश्य देखें।

एमपिरून एन प्रोग1
सभी नोड्स पर prog1 लोड करें और निष्पादित करें। निष्पादन योग्य फ़ाइल के लिए उपयोगकर्ता का $PATH खोजें
प्रत्येक नोड पर.

एमपिरुन -सी 8 प्रोग1
prog8 की 1 प्रतियाँ चलाएँ जहाँ LAM उन्हें चलाना चाहता है।

mpirun n8-10 -v -nw -s n3 prog1 -q
नोड 1, 8, और 9 पर prog10 को लोड और निष्पादित करें। नोड 1 पर prog3 खोजें और स्थानांतरित करें
यह तीन लक्ष्य नोड्स के लिए है। प्रत्येक प्रक्रिया के निर्माण के अनुसार रिपोर्ट करें। "-q" को a के रूप में दीजिए
प्रत्येक नई प्रक्रिया के लिए कमांड लाइन। प्रक्रियाओं के पहले पूरा होने की प्रतीक्षा न करें
बाहर निकलने mpirun.

mpirun -v myapp
एप्लिकेशन स्कीमा, myapp को पार्स करें और उसमें निर्दिष्ट सभी प्रक्रियाएं प्रारंभ करें। प्रतिवेदन
जैसे प्रत्येक प्रक्रिया बनाई जाती है।

mpirun -npty -wd /work/output -x डिस्प्ले C my_application

प्रत्येक उपलब्ध सीपीयू पर "my_application" की एक प्रति प्रारंभ करें। उपलब्ध की संख्या
प्रत्येक नोड पर सीपीयू पहले निर्दिष्ट किया गया था जब एलएएम को बूट किया गया था लैंबूट(1). जैसा
ऊपर उल्लेख किया गया है, mpirun निकटवर्ती रैंक को शेड्यूल करेगा MPI_COMM_WORLD एक ही नोड पर
जहां संभव। उदाहरण के लिए, यदि n0 की CPU संख्या 8 है, और n1 की CPU संख्या 4 है,
mpirun जगह देगा MPI_COMM_WORLD n0 पर 7 से 0 तक रैंक, और n8 पर 11 से 1 तक रैंक।
यह कई समानांतर अनुप्रयोगों के लिए ऑन-नोड संचार को अधिकतम करता है; इस्तेमाल के बाद
एलएएम में मल्टी-प्रोटोकॉल नेटवर्क/साझा मेमोरी आरपीआई के साथ संयोजन में (देखें)।
LAM वितरण के साथ RELEASE_NOTES और INSTALL फ़ाइलें), समग्र संचार
प्रदर्शन काफी अच्छा हो सकता है. छद्म-ट्टी समर्थन को भी अक्षम करें, निर्देशिका को बदलें
/कार्य/आउटपुट, और DISPLAY वैरिएबल को नई प्रक्रियाओं में निर्यात करें (शायद)।
my_application आउटपुट प्रदर्शित करने के लिए xv जैसे X एप्लिकेशन को आमंत्रित करेगा)।

निदान


mpirun: निष्पादन प्रारूप त्रुटि
इसका आम तौर पर मतलब है कि या तो कई प्रक्रियाएं या एक उपयुक्त जहां खंड
निर्दिष्ट नहीं किया गया था, यह दर्शाता है कि LAM को नहीं पता कि कितनी प्रक्रियाएँ चलानी हैं। देखना
ऊपर दिए गए उदाहरण और "स्थान नामकरण" अनुभाग, उदाहरण के लिए कि कैसे करें
निर्दिष्ट करें कि कितनी प्रक्रियाएँ चलानी हैं, और/या उन्हें कहाँ चलाना है। हालाँकि, यह भी हो सकता है
इसका मतलब है कि एप्लिकेशन स्कीमा में एक गैर-ASCII वर्ण का पता लगाया गया था। यह है
आमतौर पर एक कमांड लाइन उपयोग त्रुटि होती है mpirun एक एप्लिकेशन स्कीमा की अपेक्षा कर रहा है और
एक निष्पादन योग्य फ़ाइल दी गई थी.

mpirun: एप्लिकेशन स्कीमा में सिंटैक्स त्रुटि, लाइन XXX
उपयोग या सिंटैक्स त्रुटि के कारण एप्लिकेशन स्कीमा को पार्स नहीं किया जा सकता है
फ़ाइल में दी गई पंक्ति.

फ़ाइल नाम: ऐसी कोई फ़ाइल या निर्देशिका नहीं
यह त्रुटि दो मामलों में हो सकती है. या तो नामित फ़ाइल का पता नहीं लगाया जा सकता है या इसका पता लगाया जा चुका है
पाया गया है लेकिन उपयोगकर्ता के पास प्रोग्राम निष्पादित करने के लिए पर्याप्त अनुमति नहीं है
एप्लिकेशन स्कीम पढ़ें.

वापसी मूल्य


mpirun यदि सभी रैंक प्रारंभ हुई तो 0 लौटाता है mpirun MPI_FINALIZE पर कॉल करने के बाद बाहर निकलें। एक गैर-
यदि mpirun, या एक या अधिक रैंक में कोई आंतरिक त्रुटि हुई तो शून्य मान लौटाया जाता है
MPI_FINALIZE पर कॉल करने से पहले बाहर निकल गया। यदि mpirun में कोई आंतरिक त्रुटि उत्पन्न हुई, तो
संबंधित त्रुटि कोड वापस आ गया है। ऐसी स्थिति में जब एक या अधिक रैंक पहले बाहर निकल जाते हैं
MPI_FINALIZE को कॉल करना, प्रक्रिया की रैंक का रिटर्न मान mpirun प्रथम
MPI_FINALIZE को कॉल करने से पहले ही नोटिस वापस कर दिया जाएगा। ध्यान दें, सामान्य तौर पर, यह
वह पहला रैंक होगा जो मर गया लेकिन ऐसा होने की गारंटी नहीं है।

हालाँकि, ध्यान दें कि यदि -एनडब्ल्यूई स्विच का उपयोग किया जाता है, एमपिरुन से रिटर्न वैल्यू नहीं
रैंकों की निकास स्थिति को इंगित करें।

onworks.net सेवाओं का उपयोग करके mpirun.lam का ऑनलाइन उपयोग करें



नवीनतम Linux और Windows ऑनलाइन प्रोग्राम