मेरे पास थोड़ा सा शोध संबंधित प्रश्न है।साझा स्मृति के लिए एमपीआई को कॉन्फ़िगर करने का क्या अर्थ है?
वर्तमान में मैंने एमपीआई के आधार पर संरचना कंकाल फ्रेम कार्य के कार्यान्वयन को समाप्त कर लिया है (विशेष रूप से openmpi 6.3 का उपयोग कर)। फ्रेम मशीन का इस्तेमाल एकल मशीन पर किया जाना चाहिए। अब, मैं इसे अन्य पिछले कंकाल कार्यान्वयन के साथ की तुलना कर रहा हूँ (scandium जैसे, fast-flow, ..)
एक बात मैं देखा है कि मेरी कार्यान्वयन के प्रदर्शन अन्य कार्यान्वयन के रूप में रूप में अच्छा नहीं है। मुझे लगता है कि ऐसा इसलिए है क्योंकि, मेरा कार्यान्वयन एमपीआई पर आधारित है (इस प्रकार एक दो तरफा संचार जिसके लिए भेजने और प्राप्त करने के मिलान की आवश्यकता होती है) जबकि अन्य कार्यान्वयन जिनकी तुलना मैं कर रहा हूं, साझा स्मृति पर आधारित हैं। (... लेकिन फिर भी मुझे इसका तर्क देने के लिए कोई अच्छा स्पष्टीकरण नहीं है, और यह मेरे प्रश्न का हिस्सा है)
दो श्रेणियों के समापन समय पर कुछ बड़ा अंतर है।
आज मैं भी साझा स्मृति यहाँ =>openmpi-sm
के लिए खुले एमपीआई के विन्यास के लिए पेश कर रहा हूँ और वहाँ आ मेरे सवाल आता है।
पहला साझा स्मृति के लिए एमपीआई को कॉन्फ़िगर करने का क्या अर्थ है? मेरा मतलब है कि एमपीआई प्रक्रियाएं अपनी आभासी स्मृति में रहते हैं; निम्न आदेश में ध्वज वास्तव में क्या है? (मैंने एमपीआई में सोचा था कि हर संचार स्पष्ट रूप से एक संदेश पास कर रहा है, प्रक्रियाओं के बीच कोई स्मृति साझा नहीं की जाती है)।
shell$ mpirun --mca btl self,sm,tcp -np 16 ./a.out
क्यों एमपीआई के प्रदर्शन इतना साझा स्मृति के लिए विकसित की अन्य कंकाल कार्यान्वयन की तुलना के साथ भी बदतर है है? कम से कम मैं इसे एक एकल बहु-कोर मशीन पर भी चला रहा हूं। (मुझे लगता है कि ऐसा इसलिए है क्योंकि अन्य कार्यान्वयन थ्रेड समांतर प्रोग्रामिंग का उपयोग करता है, लेकिन इसके लिए मुझे कोई ठोस स्पष्टीकरण नहीं है)।
कोई सुझाव या आगे चर्चा बहुत स्वागत है।
अगर मुझे अपने प्रश्न को और स्पष्ट करना है तो कृपया मुझे बताएं।
आपके समय के लिए धन्यवाद!
लिनक्स 3.2 के रूप में FWIW, प्रक्रिया_vm_readv/writev syscalls हैं, जो लगभग केएनईएम के समान ही हैं। उदाहरण देखें http://man7.org/linux/man-pages/man2/process_vm_readv.2.html – janneb
@janneb, यह इंगित करने के लिए धन्यवाद, लेकिन 3.x कर्नेल अब एचपीसी सिस्टम के अधिकांश उत्पादन के साथ बहुत लोकप्रिय नहीं हैं। फिर भी केएनईएम सरल डेटा स्थानान्तरण से कहीं अधिक प्रदान करता है, उदाहरण के लिए एसिंक ऑपरेशंस, समापन अधिसूचनाएं, आदि –
यह सच है, लेकिन फिर, न तो केएनईएम पैच के साथ कर्नल हैं। – janneb