लेखक: व्लादास सॉलिस, पीई प्रोडाटा, क्लेपेडा, लिथुआनिया
18 मई, 2024
अमूर्त
यह पेपर एक नया प्रोग्रामिंग मॉडल प्रस्तुत करता है जो मल्टी-कोर सीपीयू सिस्टम का सरल और ऑटो-संतुलित तरीके से उपयोग कर सकता है। यह मॉडल मौसम की भविष्यवाणी, परमाणु भौतिकी, खोज इंजन इत्यादि जैसे बड़े पैमाने पर समानांतर गणना क्षेत्रों में समानांतर कार्यों और प्रणालियों को विकसित करने के लिए एक आसान प्रोग्रामिंग प्रतिमान भी प्रस्तावित करता है।
हाल के दिनों में हम कंप्यूटिंग दर्शन में एक नए बदलाव का सामना कर रहे हैं, जो नए हार्डवेयर आर्किटेक्चर की प्रगति और यहां तक कि बेहतर प्रदर्शन के कारण हुआ है। निकट भविष्य में मल्टी-कोर आर्किटेक्चर प्रचलित तकनीक बन जाएगा।
इसका लाभ उठाने के लिए हम क्या कर सकते हैं? यह पेपर हमारे पास मौजूद संभावित समाधानों में से एक के बारे में है।
प्रस्तावित कंप्यूटिंग मॉडल (जिसे "ऑब्जेक्ट फ्लो मॉडल" नाम दिया गया है) प्रसिद्ध प्रकाशित पेपर फॉर्म बर्कले [1] में उठाए गए सवालों के कुछ जवाब भी प्रदान करता है। यहां उन फायदों की एक छोटी सूची दी गई है जिन तक इस मॉडल का उपयोग करके पहुंचा जा सकता है:
· सरल प्रोग्रामिंग प्रक्रिया और आगे रखरखाव
· प्राकृतिक ओपीयू (सीपीयू) एकीकरण और माइग्रेशन जब ऑब्जेक्ट प्रोसेसिंग यूनिट (ओपीयू) को तुरंत जोड़ा या हटाया जा सकता है
· स्वचालित लोड-संतुलन
· कार्य भागों के बीच सिंक्रनाइज़ेशन की कोई आवश्यकता नहीं है
· सिस्टम स्तर पर बहुत कम या कोई आपसी लॉकिंग नहीं है
ये सभी विशेषताएँ समानांतर जावास्क्रिप्ट मशीन (पीजेएम) में कार्यान्वित की जाती हैं, जिसका वर्णन इस दस्तावेज़ में नीचे किया गया है। पीजेएम को एक मिनी ऑपरेशन सिस्टम के रूप में माना जा सकता है जो कई जावास्क्रिप्ट कार्यों, कई उपयोगकर्ताओं और कई फ्रंट-एंड कंसोल को नियंत्रित करता है।
परिचय
पीजेएम (ओएस) का मुख्य लक्ष्य विशेष निर्देशों (संकेतों) को पेश करके समानांतर प्रोग्रामिंग को सरल बनाना है जो कि //#pragma के रूप में विशेष रूप से तैयार की गई टिप्पणियों द्वारा दर्शाए जाते हैं।
समानांतर जावास्क्रिप्ट मशीन नोडजेएस का उपयोग करती है, और इसे फ्रंटएंड के लिए एक वेब सर्वर के साथ-साथ ओपीयू के लिए एक सर्वर के रूप में कार्यान्वित किया जाता है जो वास्तव में कोड के समानांतर निष्पादन करता है। ओपीयू छोटे जावास्क्रिप्ट नेटवर्क क्लाइंट हैं जिन्हें नोडजेएस में भी लागू किया गया है। आवश्यकतानुसार उनमें से कई हो सकते हैं, जो मुख्य समानांतर मशीन सर्वर से स्थानीय या दूरस्थ रूप से जुड़े हुए हैं। समानांतर प्रसंस्करण का समग्र प्रदर्शन दृढ़ता से कनेक्टेड ओपीयू की संख्या पर निर्भर करता है।
एक साथ काम करने वाले सभी सिस्टम भागों को एक मिनी-ओएस के रूप में समझा जा सकता है जो चल रहे जावास्क्रिप्ट कार्यों को लॉन्च और पार्स करता है, उनके हिस्सों को सिस्टम निष्पादन कतार में रखता है और चयनित हिस्सों के बीच कुछ प्रकार की सहकारी मल्टीटास्किंग प्रदान करता है। गणना परिणाम मुख्य सर्वर के माध्यम से ओपीयू से कंसोल.लॉग आउटपुट को पाइपलाइन करके वेब क्लाइंट के कंसोल पर मुद्रित किए जाते हैं। प्रत्येक ओपीयू को अपने स्वयं के सीपीयू (स्थानीय या दूरस्थ) को सौंपा गया है और एक सरल राउंड-रॉबिन शेड्यूलर के माध्यम से काम करता है (बाद में समझाया जाएगा)। यह PM2 प्रक्रिया प्रबंधक नोड मॉड्यूल के उपयोग द्वारा हासिल किया गया है।
“हालांकि पुराने बायनेरिज़ और सी कार्यक्रमों के साथ संगतता उद्योग के लिए मूल्यवान है, और कुछ शोधकर्ता मल्टीकोर उत्पाद योजनाओं को सफल बनाने में मदद करने की कोशिश कर रहे हैं, हम अधिक साहसी विचार सोच रहे हैं। हमारा उद्देश्य हजारों प्रोसेसरों को साकार करना है..."[1] यह आवश्यक नहीं है कि केवल एक भौतिक कंप्यूटर पर, बल्कि पूरे नेटवर्क पर, सभी केंद्रीय सर्वर इकाई द्वारा व्यवस्थित हों। सिस्टम के दृष्टिकोण से सभी सीपीयू/ओपीयू आंतरिक नेटवर्क सॉकेट प्रोटोकॉल के माध्यम से काम कर रहे हैं जो स्थानीय और दूरस्थ सीपीयू के बीच अंतर नहीं करता है। सर्वर (पीजेएम) और क्लाइंट (ओपीयू) - सभी जावास्क्रिप्ट में लिखे गए हैं, इसलिए यह सी बायनेरिज़ के साथ संगत नहीं है [अभी तक]।
सभी समानांतर प्रोग्राम, जो पीजेएम में चल रहे हैं, ईएस6 जावास्क्रिप्ट एक्सटेंशन का उपयोग नहीं करना चाहिए (ईएस5 का उपयोग करना चाहिए)। यहां यह बताना महत्वपूर्ण है कि क्लासेस, एरो फ़ंक्शंस, लेट्स और कॉन्स्ट्स, और, विशेष रूप से, एसिंक/वेट जैसे एक्सटेंशन शायद ही समानांतर हो सकते हैं, जिसके लिए अधिक गहन जावास्क्रिप्ट आंतरिक अनुसंधान की आवश्यकता होती है। यही कारण है कि PJM NodeJS V8.2.1 पर चल रहा है। बेहतर प्रदर्शन और अवधारणाओं की स्पष्टता के लिए सभी नोड मॉड्यूल इस संस्करण में लॉक किए गए हैं।
पीजेएम नियंत्रित है और कार्य वेब कंसोल का उपयोग करके चल रहे हैं जो http://parallel-js.net:8888 पर स्थित है। और यह आमतौर पर इस तरह दिखता है:
वेब कंसोल ExtJS फ्रेमवर्क का उपयोग करके लिखा गया है और express.js HTTP NodeJS मॉड्यूल के उपयोग से PJM सर्वर से जुड़ा है। वेब कंसोल का एक अन्य भाग (जिसे कंसोल और संदेश कहा जाता है) वेबसॉकेट का उपयोग करके जुड़ा हुआ है। यह वह जगह है जहां सभी प्रोग्राम के आउटपुट और सिस्टम संदेश वास्तविक समय में आ रहे हैं। यह जानना महत्वपूर्ण है कि वेब कंसोल में कोई वास्तविक गणना नहीं की जाती है - सभी गणना पीजेएम सर्वर और ओपीयू पर की जाती हैं।
…
यदि आप इस परियोजना में रुचि रखते हैं, तो कृपया पूरा लेख यहां पाएं।
इस परियोजना के लिए स्रोत कोड यहां है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3