इसे चित्रित करें: आप एक स्वादिष्ट दावत तैयार करने की जल्दी में हैं, लेकिन आप अपनी रसोई के आकार और डेक पर हाथों की संख्या से विवश हैं। समानांतर कंप्यूटिंग की दुनिया में, अमदहल का नियम और गुस्ताफसन का नियम भरोसेमंद व्यंजन हैं जिनकी आपको अपनी पाक कला की उत्कृष्ट कृति को अनुकूलित करने के लिए आवश्यकता है। वे उन गुप्त सामग्रियों की तरह हैं जिन्होंने दशकों से कंप्यूटर के प्रदर्शन को बेहतर बनाया है, जिससे हमें पहले से कहीं अधिक तेज़ प्रसंस्करण गति का आनंद लेने की अनुमति मिली है। ये दो सिद्धांत समानांतर कंप्यूटिंग के यिन और यांग हो सकते हैं, और वे मल्टी-कोर प्रोसेसर और उच्च-प्रदर्शन कंप्यूटिंग के दायरे को जीतने की उनकी खोज में तकनीक-प्रेमी जादूगरों का मार्गदर्शन कर रहे हैं। लेकिन अमदहल और गुस्ताफ़सन के नियम क्या हैं, और वे अपना जादू अलग-अलग या एक साथ कैसे काम करते हैं? समानांतर प्रोग्रामिंग के महत्व से अवगत होने के कारण, आज हम इन कानूनों की जटिलताओं में उतरेंगे और जानेंगे कि उन्हें जानकार प्रोग्रामर के हाथों में शक्तिशाली उपकरण के रूप में कैसे इस्तेमाल किया जा सकता है।
अमदहल का नियम: पृष्ठभूमि
- अधिकतम स्पीडअप
-चेतावनी
गुस्ताफसन का नियम: पृष्ठभूमि
- स्केल्ड स्पीडअप
-चेतावनी
मजबूत स्केलिंग बनाम कमजोर स्केलिंग
- स्केलिंग परीक्षण
- मजबूत स्केलिंग
- कमजोर स्केलिंग
निष्कर्ष
'67 में, स्प्रिंग जॉइंट कंप्यूटर कॉन्फ्रेंस में, आईबीएम में कुछ गंभीर कंप्यूटर विजार्ड्री कर रहे डॉ. जीन अमदहल को तीन अन्य तकनीक-प्रेमी लोगों का साथ मिला, जिनमें इलियाक-IV की आंतरिक कार्यप्रणाली के पीछे के प्रतिभाशाली, दिमागदार डैनियल स्लोटनिक भी शामिल थे। आप पूछें, वे क्या कर रहे थे? खैर, वे कंप्यूटर आर्किटेक्चर के भविष्य पर चर्चा कर रहे थे। इस सम्मेलन के दौरान, डॉ. जीन अमदहल ने वास्तविक दुनिया की समस्याओं और उनकी सभी गड़बड़ियों से निपटने के दौरान "मल्टी-प्रोसेसर दृष्टिकोण" के सामने आने वाली बाधाओं पर अपने विचार रखे। और अंदाज़ा लगाइए, उन्होंने इस तरह की प्रकृति के मुद्दों के लिए "एकल प्रोसेसर दृष्टिकोण" की जोरदार वकालत की!
आईबीएम में रहते हुए, अमदहल ने ध्यान से देखा कि कम्प्यूटेशनल कार्य का एक बड़ा हिस्सा जिसे उन्होंने उपयुक्त रूप से " डेटा प्रबंधन हाउसकीपिंग " कहा था, लिया गया था। उन्होंने दृढ़ता से तर्क दिया कि यह विशेष अंश लगभग एक दशक तक उल्लेखनीय रूप से सुसंगत रहा, और उत्पादन संचालन में निष्पादित निर्देशों का 40% लगातार निगल लिया।
इस "हाउसकीपिंग" कार्य के अंतर्गत क्या आता है? इसमें कम्प्यूटेशनल कार्यों की एक विस्तृत श्रृंखला शामिल है, जो आवश्यक होते हुए भी, कोर कंप्यूटिंग मिशन में सीधे योगदान नहीं देते हैं। विशिष्ट एल्गोरिदम और एप्लिकेशन के आधार पर, इसमें डेटा I/O, प्रीप्रोसेसिंग, मेमोरी प्रबंधन, फ़ाइल हैंडलिंग और बहुत कुछ शामिल हो सकता है। यह स्थिरता बताती है कि, कई अनुप्रयोगों के लिए, प्रसंस्करण समय का एक बड़ा हिस्सा इन कार्यों पर खर्च किया जाता है। डेटा प्रबंधन हाउसकीपिंग का एक निश्चित स्तर लगभग अपरिहार्य है और इसे महत्वपूर्ण रूप से कम करना चुनौतीपूर्ण है। अमदहल नोट करता है कि यह ओवरहेड अनुक्रमिक प्रतीत होता है, जिसका अर्थ है कि यह चरण-दर-चरण होता है और समानांतर प्रसंस्करण तकनीकों के लिए अनुपयुक्त है।
"इस बिंदु पर एक बिल्कुल स्पष्ट निष्कर्ष निकाला जा सकता है कि उच्च समानांतर प्रसंस्करण दरों को प्राप्त करने पर खर्च किया गया प्रयास तब तक बर्बाद हो जाता है जब तक कि यह लगभग समान परिमाण की अनुक्रमिक प्रसंस्करण दरों में उपलब्धियों के साथ न हो।" - डॉ. जीन अमदहल [1]
अपने मूल पेपर [1] में, अमदहल कहते हैं कि "हाउसकीपिंग" कार्यों का दायरा "मल्टी-प्रोसेसर" दृष्टिकोण के सामने आने वाली चुनौतियों के संबंध में हिमशैल का टिप मात्र है। पीएचडी रखने वाले एक प्रशिक्षित सैद्धांतिक भौतिक विज्ञानी के रूप में अपनी प्रभावशाली पृष्ठभूमि के साथ, अमदहल को वास्तविक दुनिया की भौतिक चुनौतियों की गहरी समझ थी, जिनसे निपटने के लिए कंप्यूटर को इंजीनियर किया गया था। वह कई जटिलताओं को रेखांकित करता है, जैसे अनियमित सीमाएँ, गैर-समान आंतरिक भाग, और परिवर्तनशील राज्यों पर स्थानिक और लौकिक निर्भरताएँ, ये सभी "मल्टी-प्रोसेसर" प्रतिमान के लिए दुर्जेय बाधाएँ प्रस्तुत करते हैं।
उदाहरण के लिए, 2डी कार्टेशियन ग्रिड पर ताप वितरण की गणना करने पर विचार करें। किसी भी बिंदु पर, तापमान (T) पड़ोसी बिंदुओं के तापमान पर निर्भर करता है। समानांतर कंप्यूटिंग मॉडल को नियोजित करते समय, इन मूल्यों को आसन्न बिंदुओं के साथ संचारित करना आवश्यक है, जिन्हें अलग-अलग प्रोसेसर पर संग्रहीत किया जा सकता है। ये मुद्दे समसामयिक परिदृश्यों में व्यापक बने हुए हैं।
शुक्र है, कम्प्यूटेशनल विशेषज्ञों की सामूहिक प्रतिभा ने इन जटिल चुनौतियों से निपटने के लिए कई संख्यात्मक तरीकों और प्रोग्रामिंग तकनीकों को तैयार किया है।
अपने मूल कार्य में, अमदहल का सूत्रीकरण गणितीय समीकरणों में नहीं था; केवल बाद के विश्लेषणों में ही अधिकतम गति निर्धारित की गई थी।
अमदहल का नियम इस धारणा पर आधारित है कि किसी सीरियल प्रोग्राम के निष्पादन समय का एक अंश f बिना किसी संचार या सिंक्रोनाइज़ेशन ओवरहेड के आदर्श रूप से समानांतर होता है। पूरक भाग, जिसे s = 1 - f के रूप में दर्शाया गया है, पूरी तरह से अनुक्रमिक है।
इस प्रकार, यदि टी अनुक्रमिक कार्यक्रम का निष्पादन समय है, तो पी कोर, टी (पी) पर निष्पादन समय इस प्रकार दिया गया है:
स्पीडअप , अनुक्रमिक निष्पादन समय और समानांतर निष्पादन समय का अनुपात होने के कारण, देता है:
इस प्रकार, स्पीडअप की ऊपरी सीमा को इस प्रकार परिभाषित किया जा सकता है:
अपनी सरलता के बावजूद, अमदहल का कानून अपनी सीमाओं से रहित नहीं है। मॉडल मेमोरी बैंडविड्थ, विलंबता और I/O बाधाओं जैसी महत्वपूर्ण हार्डवेयर बाधाओं को नजरअंदाज करता है। यह थ्रेड निर्माण, सिंक्रनाइज़ेशन, संचार ओवरहेड और अन्य वास्तविक दुनिया कारकों की प्रदर्शन कमियों पर विचार करने में भी विफल रहता है। अफसोस की बात है कि ये बेहिसाब कारक आमतौर पर वास्तविक प्रदर्शन पर हानिकारक प्रभाव डालते हैं।
निम्नलिखित आंकड़ा स्पीडअप पर समानांतरीकरण के प्रभाव को दर्शाता है, जैसा कि अमदहल के नियम द्वारा निर्धारित किया गया है। यह स्पष्ट है कि, 95% के पर्याप्त समानांतर अंश और प्रोसेसर की एक विशाल श्रृंखला के साथ भी, अधिकतम प्राप्य स्पीडअप लगभग 20 गुना है। समानांतरीकरण प्रतिशत को 99% तक बढ़ाने और असीमित संख्या में प्रोसेसर का उपयोग करने से अधिक प्रभावशाली 100x स्पीडअप प्राप्त हो सकता है, जो कि वादा करता है।
हालाँकि, यह पहचानना महत्वपूर्ण है कि इतने सारे प्रोसेसर होना दुर्लभ है। हम अक्सर बहुत अधिक सामान्य संख्या के साथ काम करते हैं, जैसे 64 या उससे भी कम।
जब हम 64 प्रोसेसर (95% एफ के साथ) का उपयोग करने वाले प्रोग्राम पर अमदहल का नियम लागू करते हैं, तो अधिकतम स्पीडअप 15.42x के आसपास हो जाता है। माना कि यह आंकड़ा बहुत आशाजनक नहीं है!
यह अंतर्दृष्टि इस अभिव्यक्ति में नियोजित सीमा से कुछ हद तक अस्पष्ट है:
यह सीमा इस तथ्य को छुपाती है कि जब हम प्रोसेसर की व्यावहारिक, वास्तविक दुनिया की संख्या पर विचार करते हैं तो स्पीडअप आंकड़े काफी कम होते हैं।
बहरहाल, अमदहल के नियम का सबसे महत्वपूर्ण दोष इसकी धारणा में निहित है कि किसी एप्लिकेशन को निष्पादित करने के लिए अधिक कोर का उपयोग करते समय समस्या का आकार स्थिर रहता है।
अनिवार्य रूप से, यह माना जाता है कि नियोजित कोर की संख्या की परवाह किए बिना, समानांतर अंश अपरिवर्तित रहता है। इस सीमा को जॉन एल गुस्ताफसन द्वारा पूरी तरह से संबोधित और विस्तारित किया गया था, जिन्होंने एक संशोधित परिप्रेक्ष्य प्रस्तावित किया था जिसे अब गुस्ताफसन के नियम के रूप में जाना जाता है। हालाँकि, इन स्वीकृत मुद्दों और चेतावनियों के बावजूद, यह पहचानना आवश्यक है कि अमदहल के कानून की अपनी खूबियाँ हैं, जो समानांतरीकरण की जटिलताओं में मूल्यवान अंतर्दृष्टि प्रदान करता है। अमदहल का नियम मजबूत स्केलिंग परीक्षणों के रूप में लागू होता है, एक विषय जिस पर हम बाद में चर्चा करेंगे।
सैंडिया नेशनल लेबोरेटरीज में बड़े पैमाने पर समानांतर कंप्यूटिंग सिस्टम पर काम करते हुए, डॉ. जॉन एल. गुस्ताफसन और उनकी टीम ने 1024-प्रोसेसर हाइपरक्यूब पर तीन अलग-अलग अनुप्रयोगों के लिए प्रभावशाली स्पीडअप कारक प्राप्त किए। सीरियल कोड का अंश 0.4-0.8% के अनुरूप है।
"...हमने 1024-प्रोसेसर हाइपरक्यूब पर स्पीडअप कारक हासिल किए हैं, जो हमारा मानना है कि अभूतपूर्व हैं: संयुग्म ग्रेडिएंट्स का उपयोग करके बीम तनाव विश्लेषण के लिए 1021, स्पष्ट परिमित अंतर का उपयोग करके चकित सतह तरंग सिमुलेशन के लिए 1020, और फ्लक्स-सही का उपयोग करके अस्थिर द्रव प्रवाह के लिए 1016 परिवहन।" - डॉ. जॉन एल. गुस्ताफसन [2]
हमने पिछले अनुभाग में स्पष्ट रूप से देखा कि अमदहल के नियम के अनुसार, बड़ी संख्या में प्रोसेसर के लिए प्राप्त अधिकतम स्पीडअप 1/s है। तो, 1021x की यह आश्चर्यजनक गति कैसे प्राप्त की जा सकती है?
गुस्ताफ़सन [2] ने इस बात पर प्रकाश डाला कि गणितीय अभिव्यक्ति में एक सूक्ष्म धारणा है, जिसका अर्थ है कि चर f , p से असंबंधित है। हालाँकि, यह परिदृश्य शायद ही कभी हमारे सामने आने वाली वास्तविकता है। वास्तविक दुनिया के परिदृश्यों में, हम आम तौर पर एक निश्चित आकार की समस्या नहीं लेते हैं और इसे अकादमिक अनुसंधान के नियंत्रित वातावरण को छोड़कर, विभिन्न संख्या में प्रोसेसर पर नहीं चलाते हैं। इसके बजाय, व्यावहारिक अनुप्रयोगों में, समस्या का आकार प्रोसेसर की संख्या के साथ बढ़ता है।
जब अधिक शक्तिशाली प्रोसेसर उपलब्ध हो जाते हैं, तो उपयोगकर्ता बढ़ी हुई क्षमताओं का पूरा लाभ उठाने के लिए समस्या की जटिलता को बढ़ाकर अनुकूलन करते हैं। वे यह सुनिश्चित करने के लिए कि कार्यक्रम को वांछित समय सीमा में निष्पादित किया जा सकता है, ग्रिड रिज़ॉल्यूशन, टाइमस्टेप की संख्या, अंतर ऑपरेटर की जटिलता और अन्य मापदंडों जैसे पहलुओं को ठीक कर सकते हैं।
गुस्ताफ़सन के अनुसार, यह मान लेना अक्सर अधिक यथार्थवादी होता है कि, व्यवहार में, समस्या के आकार के बजाय रनटाइम अपेक्षाकृत स्थिर रहता है।
गुस्ताफसन ने देखा कि किसी प्रोग्राम का समानांतर या वेक्टर अंश समस्या के आकार के अनुपात में बढ़ता है। वेक्टर स्टार्टअप, प्रोग्राम लोडिंग, सीरियल बॉटलनेक और I/O ऑपरेशंस जैसे तत्व, जो सामूहिक रूप से प्रोग्राम रनटाइम के घटक में योगदान करते हैं, आमतौर पर अपेक्षाकृत स्थिर रहते हैं और समस्या के आकार के साथ महत्वपूर्ण वृद्धि प्रदर्शित नहीं करते हैं।
गुस्ताफसन ने इस तर्क को आगे बढ़ाते हुए इस बात पर जोर दिया कि ऐसे परिदृश्यों में जहां हम भौतिक सिमुलेशन में स्वतंत्रता की डिग्री को दोगुना कर देते हैं, प्रोसेसर की संख्या को दोगुना करना अक्सर आवश्यक होता है। प्रारंभिक अनुमान के रूप में, काम की मात्रा जिसे प्रभावी ढंग से समानांतर में वितरित किया जा सकता है, प्रोसेसर की संख्या के साथ रैखिक रूप से बढ़ती है।
उल्लिखित तीन अनुप्रयोगों की गहन जांच में, गुस्ताफसन और उनके सहयोगियों ने पाया कि समानांतर घटक लगभग 1023.9969, 1023.9965 और 1023.9965 के स्केलिंग कारक प्रदर्शित करता है।
गुस्ताफसन की धारणा पी कोर पर सामान्यीकृत रनटाइम पर विचार करने में निहित है, जिसका योग (1 - एफ) + एफ है, जिसके परिणामस्वरूप कुल मूल्य 1 होता है। इस तर्क से, यदि (1 - एफ) + एफ पी कोर पर रनटाइम को दर्शाता है , तो एकल कोर पर रनटाइम को (1 - f) + p*f के रूप में व्यक्त किया जा सकता है। नतीजतन, स्पीडअप, जिसे गुस्ताफसन ने " स्केल्ड स्पीडअप " कहा है, की गणना निम्नानुसार की जा सकती है:
जब हम गुस्ताफसन के नियम को 64 प्रोसेसर (एफ 95% के साथ) का उपयोग करने वाले प्रोग्राम पर लागू करते हैं, तो अनुमानित स्पीडअप 60.85x है (अमदहल के नियम के साथ 15.42x की तुलना में)। अब हम बात कर रहे हैं😉
निम्नलिखित आंकड़े दोनों कानूनों के बीच अंतर को उजागर करते हैं।
अमदहल और गुस्ताफ़सन के दृष्टिकोण समानांतरीकरण पर अलग-अलग विचार प्रस्तुत करते हैं, प्रत्येक की अपनी धारणाएँ हैं।
अमदहल का नियम मानता है कि काम की मात्रा जिसे समानांतर किया जा सकता है वह स्थिर है और प्रोसेसर की संख्या से स्वतंत्र है, जो इसे बहुत निराशावादी बनाता है। गुस्ताफसन का परिप्रेक्ष्य, जो मानता है कि समानांतर किए जा सकने वाले कार्य की मात्रा कोर की संख्या के साथ रैखिक रूप से बढ़ती है, निस्संदेह कई परिदृश्यों के लिए व्यावहारिक है। हालाँकि, यह कभी-कभी अत्यधिक आशावादी भी हो सकता है।
वास्तविक दुनिया के अनुप्रयोगों को अक्सर बाधाओं का सामना करना पड़ता है जो इस रैखिक मापनीयता को सीमित कर सकते हैं। उदाहरण के लिए, जैसे-जैसे कोर की संख्या बढ़ती है, समानांतर प्रसंस्करण, डेटा निर्भरता और संचार ओवरहेड में जटिलताओं के कारण कम रिटर्न हो सकता है। इसके अलावा, हार्डवेयर सीमाएं व्यावहारिक रूप से उन कोर की संख्या को सीमित करती हैं जिन्हें प्रभावी ढंग से एक चिप में एकीकृत किया जा सकता है। गुस्ताफसन का कानून हमेशा इन जटिल वास्तविक दुनिया की चुनौतियों का जवाब नहीं दे सकता है, जिससे इसकी प्रयोज्यता को प्रभावित करने वाली चेतावनियों पर विचार करना आवश्यक हो जाता है।
गुस्ताफ़सन के नियम की प्रभावशीलता अनुप्रयोग की प्रकृति पर भी निर्भर हो सकती है। जबकि कुछ एप्लिकेशन स्वाभाविक रूप से बढ़ती कोर गिनती के साथ खुद को रैखिक स्केलेबिलिटी के लिए उधार देते हैं, अन्य अंतर्निहित बाधाओं या समस्या की प्रकृति के कारण बहुत जल्दी स्थिर हो सकते हैं। व्यावहारिक अनुप्रयोगों में रैखिक स्केलेबिलिटी की व्यवहार्यता पर विचार करते समय प्रोग्रामिंग जटिलताओं और घटते रिटर्न की संभावना पर विचार किया जाना चाहिए।
संक्षेप में, समानांतरीकरण पर अधिक आशावादी दृष्टिकोण की पेशकश करते हुए, गुस्ताफसन के कानून को आधुनिक कंप्यूटिंग की वास्तविक दुनिया की जटिलताओं के साथ संरेखित करने के लिए एप्लिकेशन, हार्डवेयर बाधाओं और समानांतर प्रोग्रामिंग की जटिलताओं की गहरी समझ के साथ लागू करने की आवश्यकता है।
इसके मूल में, स्केलेबिलिटी किसी सिस्टम या एप्लिकेशन की क्षमता को संदर्भित करती है ताकि उसके आकार के विस्तार के साथ बढ़े हुए कार्यभार को कुशलतापूर्वक प्रबंधित किया जा सके।
कंप्यूटिंग में, चाहे हार्डवेयर हो या सॉफ्टवेयर, स्केलेबिलिटी उपलब्ध संसाधनों को बढ़ाकर कम्प्यूटेशनल शक्ति को बढ़ाने की क्षमता को दर्शाती है।
उच्च-प्रदर्शन कंप्यूटिंग (एचपीसी) क्लस्टर के संदर्भ में, स्केलेबिलिटी प्राप्त करना महत्वपूर्ण है; यह अतिरिक्त हार्डवेयर घटकों को एकीकृत करके सिस्टम की समग्र क्षमता को निर्बाध रूप से विस्तारित करने की क्षमता का प्रतीक है। सॉफ्टवेयर के संबंध में, स्केलेबिलिटी अक्सर समानांतरीकरण दक्षता का पर्याय है, जो एक विशिष्ट संख्या में प्रोसेसर का उपयोग करते समय वास्तविक स्पीडअप और प्राप्त होने वाले आदर्श स्पीडअप के बीच के अनुपात का प्रतिनिधित्व करता है। यह मीट्रिक इस बात की अंतर्दृष्टि प्रदान करता है कि प्रदर्शन को बढ़ाने के लिए सॉफ्टवेयर समानांतर प्रसंस्करण का कितना प्रभावी ढंग से लाभ उठा सकता है।
बड़े अनुप्रयोगों की विशिष्ट विकास प्रक्रिया में, शुरू से ही पूर्ण समस्या आकार और अधिकतम प्रोसेसर गणना के साथ परीक्षण शुरू करना अक्सर अव्यावहारिक होता है। इस दृष्टिकोण में विस्तारित प्रतीक्षा समय और संसाधनों का अत्यधिक उपयोग शामिल है। इसलिए, एक अधिक व्यावहारिक रणनीति में शुरू में इन कारकों को कम करना शामिल है, जो परीक्षण चरण को तेज करता है और संसाधन योजना में सहायता करते हुए, अंतिम पूर्ण पैमाने पर चलाने के लिए आवश्यक संसाधनों का अधिक सटीक अनुमान लगाने की अनुमति देता है।
स्केलेबिलिटी परीक्षण यह मूल्यांकन करने के साधन के रूप में कार्य करता है कि कोई एप्लिकेशन इष्टतम प्रदर्शन सुनिश्चित करते हुए विभिन्न समस्या आकारों और अलग-अलग प्रोसेसर गणनाओं को कितनी अच्छी तरह अनुकूलित कर सकता है।
यह ध्यान रखना महत्वपूर्ण है कि स्केलेबिलिटी परीक्षण एप्लिकेशन की समग्र कार्यक्षमता या शुद्धता की जांच नहीं करता है; इसका प्राथमिक ध्यान प्रदर्शन और दक्षता पर है क्योंकि कम्प्यूटेशनल संसाधनों को समायोजित किया जाता है।
दो मानक स्केलिंग परीक्षण, मजबूत और कमजोर , समानांतर कंप्यूटिंग में व्यापक रूप से नियोजित होते हैं।
मजबूत स्केलिंग में समस्या के आकार को स्थिर रखते हुए प्रोसेसर की संख्या बढ़ाना शामिल है। यह दृष्टिकोण प्रति प्रोसेसर कार्यभार को कम करता है, जो लंबे समय तक चलने वाले सीपीयू-गहन अनुप्रयोगों के लिए विशेष रूप से मूल्यवान है। मजबूत स्केलिंग का प्राथमिक उद्देश्य एक ऐसे कॉन्फ़िगरेशन की पहचान करना है जो संसाधन लागत को प्रबंधनीय सीमा के भीतर रखते हुए उचित निष्पादन समय प्रदान करता है।
मजबूत स्केलिंग अमदहल के नियम में निहित है, समस्या का आकार स्थिर रहता है जबकि प्रसंस्करण तत्वों की संख्या में वृद्धि होती है। यह पद्धति अक्सर पर्याप्त सीपीयू-बाध्य कार्यभार वाले कार्यक्रमों के लिए उचित है।
मजबूत स्केलिंग का अंतिम उद्देश्य इष्टतम "स्वीट स्पॉट" का पता लगाना है जो समानांतर ओवरहेड के कारण प्रसंस्करण चक्रों की बर्बादी को कम करते हुए, उचित समय सीमा के भीतर गणना को पूरा करने की अनुमति देता है।
मजबूत स्केलिंग में, एक प्रोग्राम को रैखिक रूप से स्केल करने वाला माना जाता है यदि स्पीडअप, समय की प्रति यूनिट पूरी की गई कार्य इकाइयों के संदर्भ में, नियोजित प्रसंस्करण तत्वों की संख्या के साथ संरेखित होता है (एन)। इसी तरह, स्पीडअप सबलाइनियर या यहां तक कि सुपर-लीनियर भी हो सकता है, यह इस बात पर निर्भर करता है कि यह प्रोसेसर की संख्या के साथ कैसे स्केल करता है।
अंततः, मैंने अपने एक कोड पर मजबूत स्केलिंग परीक्षण करने का प्रयास किया। फ्लुइडचेन-ईएम एक कम्प्यूटेशनल फ्लूइड डायनेमिक्स सॉल्वर है जो कई फ्लूइड डायनेमिक्स समस्याओं को हल करने में सक्षम है। निम्नलिखित परिणाम ढक्कन-संचालित गुहा के अनुकरण के अनुरूप हैं। अंतिम टाइमस्टैम्प (अभिसरण के बाद) पर वेग की कल्पना की जाती है, और निष्पादन रनटाइम की गणना की जाती है। फ्लुइडचेन-ईएम कम्प्यूटेशनल डोमेन को iproc*jproc प्रोसेसर में वितरित करने के लिए MPI का उपयोग करता है।
ध्यान दें : परिणाम मेरे व्यक्तिगत कंप्यूटर पर चलाए गए थे और सभी कोर केवल एक प्रोसेसर से मेल खाते हैं। यदि सिमुलेशन बड़ी और बेहतर मशीन पर चलाया जाए तो परिणाम भिन्न हो सकते हैं!
कम्प्यूटेशनल डोमेन को कुल imax*jmax ग्रिड बिंदुओं में विभाजित किया गया है।
आईप्रोक: एक्स-दिशा में प्रोसेसर की संख्या
jproc: y-दिशा में प्रोसेसर की संख्या
जैसा कि चित्र में दिखाया गया है, जैसे ही प्रोसेसर की संख्या 1 से 2 तक दोगुनी हो जाती है, निष्पादन समय तेजी से घट जाता है। हालाँकि, प्रोसेसर की संख्या 2 से 4 तक दोगुनी होने पर स्पीडअप उतना नाटकीय नहीं होता है, और यह आगे बढ़ने के लिए संतृप्त होना भी शुरू हो जाता है। प्रोसेसर की संख्या में. हालाँकि, परिणाम आठ कोर वाले प्रोसेसर पर संकलित किए गए थे, इसलिए यदि निष्पादन बड़ी और अधिक शक्तिशाली मशीन पर किया जाता है तो ये परिणाम बदल सकते हैं।
कमजोर स्केलिंग में, प्रोसेसर की संख्या और समस्या का आकार बढ़ जाता है, जिससे प्रति प्रोसेसर एक स्थिर कार्यभार बना रहता है। कमजोर स्केलिंग गुस्ताफसन के नियम के अनुरूप है, जहां स्केल किए गए स्पीडअप की गणना स्केल किए गए समस्या आकार के कार्यभार के आधार पर की जाती है, जो कि अमदहल के नियम के विपरीत है, जो एक निश्चित समस्या आकार पर केंद्रित है।
प्रत्येक प्रसंस्करण तत्व को आवंटित समस्या का आकार स्थिर रहता है, जिससे अतिरिक्त तत्व सामूहिक रूप से एक बड़ी समग्र समस्या को हल कर सकते हैं, जो एक नोड की मेमोरी क्षमता से अधिक हो सकती है।
कमजोर स्केलिंग पर्याप्त मेमोरी या संसाधन आवश्यकताओं (मेमोरी-बाउंड वाले) वाले अनुप्रयोगों को उचित ठहराती है, जिन्हें एक नोड द्वारा प्रदान की जा सकने वाली मेमोरी से अधिक मेमोरी की आवश्यकता होती है। ऐसे एप्लिकेशन अक्सर कुशल स्केलिंग प्रदर्शित करते हैं क्योंकि उनकी मेमोरी एक्सेस रणनीतियाँ आस-पास के नोड्स को प्राथमिकता देती हैं, जिससे वे उच्च कोर गणना के लिए उपयुक्त हो जाते हैं।
कमजोर स्केलिंग के मामले में, रैखिक स्केलेबिलिटी तब प्राप्त होती है जब रनटाइम स्थिर रहता है क्योंकि प्रोसेसर की संख्या के सीधे अनुपात में कार्यभार बढ़ता है।
इस मोड को अपनाने वाले अधिकांश प्रोग्राम उच्च कोर गणनाओं के लिए अनुकूल स्केलिंग प्रदर्शित करते हैं, विशेष रूप से निकटतम-पड़ोसी संचार पैटर्न को नियोजित करने वाले, क्योंकि उनका संचार ओवरहेड उपयोग की जाने वाली प्रक्रियाओं की संख्या की परवाह किए बिना अपेक्षाकृत सुसंगत रहता है। इस प्रवृत्ति के अपवादों में वैश्विक संचार पैटर्न पर अत्यधिक निर्भर एल्गोरिदम शामिल हैं।
अंत में, मैंने फ्लुइडचेन-ईएम का उपयोग करके कमजोर स्केलिंग परीक्षण किए। निम्नलिखित परिणाम रेले-बेनार्ड संवहन के अनुकरण के अनुरूप हैं। फिर से, अंतिम टाइमस्टैम्प (अभिसरण के बाद) पर वेग की कल्पना की जाती है, और निष्पादन रनटाइम की गणना की जाती है। फ्लुइडचेन-ईएम कम्प्यूटेशनल डोमेन को iproc*jproc प्रोसेसर में वितरित करने के लिए MPI का उपयोग करता है।
नोट: परिणाम मेरे व्यक्तिगत कंप्यूटर पर चलाए गए थे और सभी कोर केवल एक प्रोसेसर से मेल खाते हैं। यदि सिमुलेशन बड़ी और बेहतर मशीन पर चलाया जाए तो परिणाम भिन्न हो सकते हैं!
कम्प्यूटेशनल डोमेन को कुल imax*jmax ग्रिड बिंदुओं में विभाजित किया गया है।
आईप्रोक: एक्स-दिशा में प्रोसेसर की संख्या
jproc: y-दिशा में प्रोसेसर की संख्या
आईमैक्स: चैनल की लंबाई के साथ ग्रिड बिंदुओं की संख्या
जेमैक्स: चैनल की ऊंचाई के साथ ग्रिड बिंदुओं की संख्या
xlength: चैनल की लंबाई
ylength: चैनल की ऊंचाई
जैसा कि ऊपर दिए गए चित्र में दिखाया गया है, निष्पादन रनटाइम समस्या के आकार और प्रोसेसर की संख्या दोनों में वृद्धि के साथ वृद्धि दर्शाता है। इस व्यवहार को कई कारकों के लिए जिम्मेदार ठहराया जा सकता है। सभी कोर एक ही प्रोसेसर पर रहते हैं, जैसे-जैसे समस्या का आकार बढ़ता है और अधिक प्रोसेसर लगे होते हैं, प्रोसेसिंग समय का एक हिस्सा एमपीआई (मैसेज पासिंग इंटरफेस) संचार स्थापित करने में खर्च हो जाता है। इसके अतिरिक्त, बड़ी समस्या के आकार के कारण कोर के बीच डेटा विनिमय में वृद्धि की आवश्यकता होती है, जिससे संचार नेटवर्क की सीमित बैंडविड्थ के कारण संचार विलंबता बढ़ जाती है।
इस प्रकार, ये परीक्षण परिणाम समस्या के समानांतरीकरण में महत्वपूर्ण अंतर्दृष्टि प्रदान करते हैं।
एल्गोरिदम समानांतरीकरण में गुस्ताफ़सन के नियम और अमदहल के नियम के बीच चयन गणना कार्यभार की अनुकूलन क्षमता पर निर्भर करता है। गुस्ताफसन का नियम तब उपयुक्त होता है जब एक एल्गोरिदम उपलब्ध समानांतरीकरण से मेल खाने के लिए गणना की मात्रा को गतिशील रूप से समायोजित कर सकता है। इसके विपरीत, अमदहल का नियम तब अधिक उपयुक्त होता है जब गणना भार निश्चित होता है और समानांतरीकरण द्वारा इसमें महत्वपूर्ण परिवर्तन नहीं किया जा सकता है। वास्तविक दुनिया के परिदृश्यों में, समानांतरीकरण के लिए एक एल्गोरिदम को अपनाने में अक्सर कुछ हद तक गणना संशोधन शामिल होता है, और दोनों कानून मूल्यवान बेंचमार्क के रूप में काम करते हैं, जो अनुमानित स्पीडअप पर ऊपरी और निचली सीमाएं प्रदान करते हैं। उनके बीच का चुनाव समानांतरीकरण के दौरान पेश किए गए कम्प्यूटेशनल परिवर्तनों की सीमा पर निर्भर करता है, जिससे संभावित स्पीडअप लाभ का व्यापक मूल्यांकन संभव हो पाता है।
[2] अमदहल के नियम का पुनर्मूल्यांकन | एसीएम का संचार
[4] मल्टीकोर्स के भविष्य की भविष्यवाणी के लिए अमदहल का नियम हानिकारक माना जाता है (tu-berlin.de)
[5] स्केलिंग - एचपीसी विकी (hpc-wiki.info)
[6] आर1पार्क्स द्वारा अमदहल बनाम गुस्ताफसन - इन्फोग्राम
अनस्प्लैश पर मार्क सेंड्रा मार्टोरेल द्वारा प्रदर्शित फोटो
यहाँ भी प्रकाशित किया गया है.