कंप्यूटर क्लस्टर में संदेश प्रेषण

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

संदेश पास करने के लिए दृष्टिकोण
ऐतिहासिक रूप से, क्लस्टर नोड्स के बीच संचार के लिए दो विशिष्ट दृष्टिकोण PVM, समानांतर वर्चुअल मशीन और MPI, संदेश पासिंग इंटरफ़ेस रहे हैं। हालाँकि, MPI अब कंप्यूटर क्लस्टर पर संदेश भेजने के लिए वास्तविक मानक के रूप में उभरा है। PVM MPI से पहले का है और इसे 1989 के आसपास ओक रिज राष्ट्रीय प्रयोगशाला  में विकसित किया गया था। यह सॉफ्टवेयर लाइब्रेरी का एक सेट प्रदान करता है जो एक कंप्यूटिंग नोड को समानांतर वर्चुअल मशीन के रूप में कार्य करने की अनुमति देता है। यह संदेश-पासिंग, कार्य और संसाधन प्रबंधन, और गलती अधिसूचना के लिए रन-टाइम वातावरण प्रदान करता है और प्रत्येक क्लस्टर नोड पर सीधे स्थापित होना चाहिए। PVM का उपयोग C भाषा, C++, या फोरट्रान आदि में लिखे उपयोगकर्ता प्रोग्रामों द्वारा किया जा सकता है।

पीवीएम के विपरीत, जिसका एक ठोस कार्यान्वयन है, एमपीआई पुस्तकालयों के एक विशिष्ट सेट के बजाय एक विनिर्देश है। विनिर्देश 1990 की शुरुआत में 40 संगठनों के बीच हुई चर्चाओं से उभरा, प्रारंभिक प्रयास DARPA और राष्ट्रीय विज्ञान संस्था  द्वारा समर्थित थे। MPI का डिज़ाइन उस समय की वाणिज्यिक प्रणालियों में उपलब्ध विभिन्न विशेषताओं पर आधारित था। एमपीआई विनिर्देशों ने तब विशिष्ट कार्यान्वयन को जन्म दिया। एमपीआई कार्यान्वयन आमतौर पर टीसीपी/आईपी और सॉकेट कनेक्शन का उपयोग करते हैं। एमपीआई अब एक व्यापक रूप से उपलब्ध संचार मॉडल है जो समानांतर कार्यक्रमों को सी (प्रोग्रामिंग भाषा), फोरट्रान, पायथन (प्रोग्रामिंग भाषा), आदि भाषाओं में लिखे जाने में सक्षम बनाता है। MPI विनिर्देश MPICH और Open MPI जैसी प्रणालियों में लागू किया गया है।

परीक्षण, मूल्यांकन और अनुकूलन
कंप्यूटर क्लस्टर कई नोड्स पर प्रसंस्करण के वितरण और परिणामी संचार ओवरहेड से निपटने के लिए कई रणनीतियों का उपयोग करते हैं। कुछ कंप्यूटर क्लस्टर जैसे ती मैं और -मैं संगणना करने के लिए उपयोग किए जाने वाले संदेशों की तुलना में संदेश पास करने के लिए विभिन्न प्रोसेसर का उपयोग करते हैं। Tiahnhe-I अपने स्वामित्व संदेश पासिंग सिस्टम के संचालन को बढ़ाने के लिए दो हजार से अधिक FeiTeng-1000 प्रोसेसर का उपयोग करता है, जबकि गणना Xeon और Nvidia Tesla प्रोसेसर द्वारा की जाती है। संचार ओवरहेड को कम करने के लिए एक दृष्टिकोण विशिष्ट कार्यों के लिए स्थानीय पड़ोस (जिसे लोकेल (कंप्यूटर हार्डवेयर) भी कहा जाता है) का उपयोग होता है। यहां कम्प्यूटेशनल कार्यों को क्लस्टर में विशिष्ट पड़ोसों को सौंपा गया है, जो एक दूसरे के करीब प्रोसेसर का उपयोग करके दक्षता बढ़ाने के लिए हैं। हालाँकि, यह देखते हुए कि कई मामलों में कंप्यूटर क्लस्टर नोड्स के वास्तविक नेटवर्क टोपोलॉजी और उनके इंटरकनेक्शन को एप्लिकेशन डेवलपर्स के लिए नहीं जाना जा सकता है, एप्लिकेशन प्रोग्राम स्तर पर प्रदर्शन को ठीक करने का प्रयास करना काफी कठिन है।

यह देखते हुए कि MPI अब कंप्यूटर क्लस्टरों पर वास्तविक मानक के रूप में उभरा है, क्लस्टर नोड्स की संख्या में वृद्धि के परिणामस्वरूप MPI पुस्तकालयों की दक्षता और मापनीयता में सुधार के लिए निरंतर अनुसंधान हुआ है। इन प्रयासों में एमपीआई पुस्तकालयों की स्मृति पदचिह्न को कम करने के लिए अनुसंधान सम्मिलित है।

शुरुआती दिनों से एमपीआई ने पीएमपीआई प्रोफाइलिंग सिस्टम के माध्यम से रूपरेखा (कंप्यूटर प्रोग्रामिंग)  के लिए सुविधाएं प्रदान कीं। PMIPI- उपसर्ग का उपयोग संदेशों के प्रवेश और निकास बिंदुओं के अवलोकन की अनुमति देता है। हालाँकि, इस प्रोफ़ाइल की उच्च स्तरीय प्रकृति को देखते हुए, इस प्रकार की जानकारी केवल संचार प्रणाली के वास्तविक व्यवहार की एक झलक प्रदान करती है। अधिक जानकारी की आवश्यकता के परिणामस्वरूप MPI-Peruse सिस्टम का विकास हुआ। Peruse MPI-पुस्तकालय के भीतर राज्य-परिवर्तनों तक पहुँच प्राप्त करने के लिए अनुप्रयोगों को सक्षम करके अधिक विस्तृत प्रोफ़ाइल प्रदान करता है। यह Peruse के साथ कॉलबैक दर्ज करके प्राप्त किया जाता है, और फिर उन्हें ट्रिगर के रूप में आमंत्रित किया जाता है क्योंकि संदेश घटनाएँ होती हैं। Peruse PARAVER विज़ुअलाइज़ेशन सिस्टम के साथ काम कर सकता है। पैरावर में दो घटक होते हैं, एक ट्रेस घटक और निशान का विश्लेषण करने के लिए एक दृश्य घटक, विशिष्ट घटनाओं से संबंधित आंकड़े आदि। PARAVER अन्य प्रणालियों से ट्रेस स्वरूपों का उपयोग कर सकता है, या अपना स्वयं का अनुरेखण कर सकता है। यह टास्क लेवल, थ्रेड लेवल और हाइब्रिड फॉर्मेट में काम करता है। निशानों में अक्सर इतनी अधिक जानकारी सम्मिलित होती है कि वे अक्सर भारी पड़ जाते हैं। इस प्रकार पैराएवर उन्हें सारांशित करता है ताकि उपयोगकर्ता उन्हें देख सकें और उनका विश्लेषण कर सकें।

प्रदर्शन विश्लेषण
जब एक बड़े पैमाने पर, अक्सर सुपर कंप्यूटर  स्तर, समानांतर प्रणाली विकसित की जा रही है, तो यह आवश्यक है कि वह कई विन्यासों के साथ प्रयोग करने और प्रदर्शन का अनुकरण करने में सक्षम हो। इस परिदृश्य में मॉडलिंग संदेश पासिंग दक्षता के लिए कई दृष्टिकोण हैं, विश्लेषणात्मक मॉडल से ट्रेस-आधारित सिमुलेशन तक और कुछ दृष्टिकोण संदेश पासिंग प्रदर्शन के सिंथेटिक परीक्षण करने के लिए कृत्रिम संचार के आधार पर परीक्षण वातावरण के उपयोग पर भरोसा करते हैं। BIGSIM जैसी प्रणालियाँ विभिन्न नेटवर्क टोपोलॉजी, संदेश पासिंग और शेड्यूलिंग रणनीतियों पर प्रदर्शन के अनुकरण की अनुमति देकर ये सुविधाएँ प्रदान करती हैं।

विश्लेषणात्मक दृष्टिकोण
विश्लेषणात्मक स्तर पर, स्टार्टअप विलंबता (इंजीनियरिंग), एसिम्प्टोटिक बैंडविड्थ और प्रोसेसर की संख्या जैसे उप-घटकों के एक सेट की अवधि में संचार समय टी को मॉडल करना आवश्यक है। एक प्रसिद्ध मॉडल हॉकनी का मॉडल है जो टी = एल + (एम / आर) का उपयोग करके बिंदु से बिंदु संचार पर निर्भर करता है, जहां एम संदेश का आकार है, एल स्टार्टअप विलंबता है और आर एमबी / एस में स्पर्शोन्मुख बैंडविड्थ है। जू और ह्वांग ने हॉकनी के मॉडल को प्रोसेसर की संख्या को सम्मिलित करने के लिए सामान्यीकृत किया, ताकि विलंबता और स्पर्शोन्मुख बैंडविड्थ दोनों प्रोसेसर की संख्या के कार्य हों। गुनवान और कै ने इसके बाद कैशे (कंप्यूटिंग) की शुरुआत करके इसे और सामान्यीकृत किया, और संदेशों को उनके आकार के आधार पर अलग किया, दो अलग-अलग मॉडल प्राप्त किए, एक कैश आकार के नीचे के संदेशों के लिए, और एक ऊपर वालों के लिए।

प्रदर्शन सिमुलेशन
कंप्यूटर क्लस्टर पर संदेश भेजने के प्रदर्शन को अनुकरण करने और समझने के लिए विशिष्ट उपकरणों का उपयोग किया जा सकता है। उदाहरण के लिए, CLUSTERSIM असतत-ईवेंट सिमुलेशन के लिए जावा-आधारित विज़ुअल वातावरण का उपयोग करता है। इस दृष्टिकोण में कंप्यूटेड नोड्स और नेटवर्क टोपोलॉजी को दृष्टिगत रूप से प्रतिरूपित किया जाता है। नौकरियां और उनकी अवधि और जटिलता को विशिष्ट संभाव्यता वितरण के साथ दर्शाया जाता है जिससे विभिन्न समांतर नौकरी शेड्यूलिंग एल्गोरिदम प्रस्तावित और प्रयोग किए जा सकते हैं। संदेश पासिंग इंटरफ़ेस संदेश पासिंग के लिए संचार ओवरहेड इस प्रकार सिम्युलेटेड और बड़े पैमाने पर समानांतर नौकरी निष्पादन के संदर्भ में बेहतर समझा जा सकता है। अन्य अनुकार उपकरणों में MPI-sim और BIGSIM सम्मिलित हैं। MPI-Sim एक निष्पादन-संचालित सिम्युलेटर है जिसे संचालित करने के लिए C या C++ प्रोग्राम की आवश्यकता होती है। दूसरी ओर क्लस्टरसिम, प्रोग्राम निष्पादन के लिए उपयोग की जाने वाली प्रोग्रामिंग भाषा से स्वतंत्र हाइब्रिड उच्च-स्तरीय मॉडलिंग सिस्टम का उपयोग करता है।

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

यह भी देखें

 * उच्च उपलब्धता क्लस्टर
 * प्रदर्शन सिमुलेशन
 * सुपर कम्प्यूटिंग