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

From Vigyanwiki
एक नेटवर्क पर संदेश पास करके एक साथ काम करने वाले कई कंप्यूटरों वाले क्लस्टर पर काम करने वाले तकनीशियन

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

हाल ही में, एक हज़ार से अधिक नोड वाले कंप्यूटर क्लस्टर का उपयोग फैल रहा है। चूंकि क्लस्टर में नोड्स की संख्या बढ़ जाती है इसलिए संचार सबसिस्टम की जटिलता में तेजी से वृद्धि समानांतर कार्यक्रम के निष्पादन में एक गंभीर प्रदर्शन के अभिप्राय को इंटरकनेक्ट पर संदेश भेजने में देरी करती है।[3]

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


संदेश और संगणना

संदेश पास करने के लिए दृष्टिकोण

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

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

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


परीक्षण, मूल्यांकन और अनुकूलन

Apple कंप्यूटरों का वर्जीनिया टेक ज़र्व क्लस्टर

कंप्यूटर क्लस्टर कई नोड्स पर प्रसंस्करण के वितरण और ऊपरी परिणामी संचार से निपटने के लिए कई रणनीतियों का उपयोग करते हैं। कुछ कंप्यूटर क्लस्टर जैसे Tianhe-I संगणना करने के लिए उपयोग किए जाने वाले संदेशों की तुलना में संदेश पास करने के लिए विभिन्न प्रोसेसर का उपयोग करते हैं। Tianhe-I संदेश भेजना सिस्टम के संचालन को बढ़ाने के लिए दो हजार से अधिक FeiTeng-1000 प्रोसेसर का उपयोग करता है, जबकि गणना Xeon और Nvidia Tesla प्रोसेसर द्वारा की जाती है।[10][11]

संचार ओवरहेड को कम करने के लिए एक दृष्टिकोण विशिष्ट कार्यों के लिए स्थानीय निकटता (जिसे लोकेल भी कहा जाता है) का उपयोग होता है। यहां क्लस्टर में कम्प्यूटेशनल कार्यों को विशिष्ट " निकटता" सौंपा गया है, जो एक दूसरे के नज़दीक प्रोसेसर का उपयोग करके दक्षता बढ़ाने के लिए हैं।[3]यद्यपि, यह देखते हुए कि कई मामलों में कंप्यूटर क्लस्टर नोड्स के वास्तविक नेटवर्क टोपोलॉजी और उनके इंटरकनेक्शन का एप्लिकेशन डेवलपर्स को ज्ञात नहीं हो सकता है, एप्लिकेशन प्रोग्राम स्तर पर प्रदर्शन को ठीक करने का प्रयास करना अपेक्षित कठिन है।[3]

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

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


प्रदर्शन विश्लेषण

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


विश्लेषणात्मक दृष्टिकोण

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

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


प्रदर्शन सिमुलेशन

आईबीM रोडरनर क्लस्टर सुपरकंप्यूटर

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

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

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


यह भी देखें

संदर्भ

  1. 1.0 1.1 Computer Organization and Design by David A. Patterson and John L. Hennessy 2011 ISBN 0123747503 page 641 [1]
  2. Beowulf Cluster Computing With Windows by Thomas Lawrence Sterling 2001 ISBN 0262692759 MIT Press pages 7–9
  3. 3.0 3.1 3.2 3.3 Recent Advances in the Message Passing Interface by Yiannis Cotronis, Anthony Danalis, Dimitris Nikolopoulos and Jack Dongarra 2011 ISBN 3642244483 pages 160–162
  4. 4.0 4.1 4.2 Petascale Computing: Algorithms and Applications by David A. Bader 2007 ISBN 1584889098 pages 435–435
  5. 5.0 5.1 5.2 5.3 5.4 Languages and Compilers for Parallel Computing edited by Keith Cooper, John Mellor-Crummey and Vivek Sarkar 2011 ISBN 3642195946 pages 202–203
  6. 6.0 6.1 6.2 Distributed services with OpenAFS: for enterprise and education by Franco Milicchio, Wolfgang Alexander Gehrke 2007, pp. 339-341
  7. 7.0 7.1 Recent Advances in Parallel Virtual Machine and Message Passing Interface by Matti Ropo, Jan Westerholm and Jack Dongarra 2009 ISBN 3642037690 page 231
  8. 8.0 8.1 8.2 Grid and Cluster Computing by J. Prabhu 2008 ISBN 8120334280 pages 109–112
  9. Gropp, William; Lusk, Ewing; Skjellum, Anthony (1996). "एमपीआई संदेश पासिंग इंटरफेस का एक उच्च प्रदर्शन, पोर्टेबल कार्यान्वयन". Parallel Computing. doi:10.1016/0167-8191(96)00024-5.
  10. The TianHe-1A Supercomputer: Its Hardware and Software by Xue-Jun Yang, Xiang-Ke Liao, et al in the Journal of Computer Science and Technology, Volume 26, Number 3, May 2011, pages 344–351 "Archived copy". Archived from the original on 2011-06-21. Retrieved 2012-02-08.{{cite web}}: CS1 maint: archived copy as title (link)
  11. U.S. says China building 'entirely indigenous' supercomputer, by Patrick Thibodeau Computerworld, November 4, 2010 [2]
  12. What is PMPI?
  13. 13.0 13.1 Recent Advances in Parallel Virtual Machine and Message Passing Interface by Bernd Mohr, Jesper Larsson Träff, Joachim Worringen and Jack Dongarra 2006 ISBN 354039110X page 347
  14. 14.0 14.1 PARAVER: A Tool to Visualize and Analyze Parallel Code by Vincent Pillet et al, Proceedings of the conference on Transputer and Occam Developments, 1995, pages 17–31
  15. Computational Science-- Iccs 2003 edited by Peter M.A. Sloot, David Abramson, Alexander V. Bogdanov and Jack J. Dongarra ISBN 3540401970 page 183
  16. 16.0 16.1 16.2 Modeling Message Passing Overhead by C.Y Chou et al. in Advances in Grid and Pervasive Computing: First International Conference, GPC 2006 edited by Yeh-Ching Chung and José E. Moreira ISBN 3540338098 pages 299–307
  17. High-Performance Computing and Networking edited by Peter Sloot, Marian Bubak and Bob Hertzberge 1998 ISBN 3540644431 page 935
  18. 18.0 18.1 18.2 High Performance Computational Science and Engineering edited by Michael K. Ng, Andrei Doncescu, Laurence T. Yang and Tau Leng, 2005 ISBN 0387240489 pages 59–63
  19. 19.0 19.1 19.2 Advances in Computer Science, Environment, Ecoinformatics, and Education edited by Song Lin and Xiong Huang 2011 ISBN 3642233236 page 16