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

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

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

संदेश पास करने के लिए दृष्टिकोण
ऐतिहासिक रूप से, क्लस्टर नोड्स के बीच संचार के लिए दो विशिष्ट दृष्टिकोण PVM, समानांतर वर्चुअल मशीन और MPI, संदेश भेजना इंटरफ़ेस रहे हैं। यद्यपि, MPI अब कंप्यूटर क्लस्टर पर संदेश भेजने के लिए वास्तविक मानक के रूप में उभरा है।

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

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

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

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

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

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

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

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

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

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

यह भी देखें

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