पैरेलल प्रोग्रामिंग मॉडल
पैरेलल प्रोग्रामिंग मॉडल वे एब्स्ट्रैक्शन हैं जिनके माध्यम से प्रोग्रामर गति प्राप्त करने के लिए कई प्रोसेसरों में गणना को व्यक्त और समन्वित करते हैं।
Definition
एक पैरेलल प्रोग्रामिंग मॉडल एक पैरेलल कंप्यूटर का एक एब्स्ट्रैक्शन है जो परिभाषित करता है कि गणना को समवर्ती कार्यों में कैसे विघटित किया जाता है, वे कार्य कैसे संचार और सिंक्रनाइज़ करते हैं, और डेटा को प्रोसेसरों के बीच कैसे साझा या वितरित किया जाता है, जिससे कई प्रोसेसिंग इकाइयों का उपयोग करके एक समस्या को तेजी से हल किया जा सकता है।
Scope
यह क्षेत्र प्रमुख पैरेलल प्रोग्रामिंग मॉडल—साझा-मेमोरी और डेटा पैरेललिज्म (थ्रेड्स, OpenMP), मैसेज पासिंग (MPI), और एक्सेलेरेटर/GPU प्रोग्रामिंग (CUDA, OpenCL)—के साथ-साथ पैरेलल आर्किटेक्चर की फ्लिन की वर्गीकरण प्रणाली, पैरेलल एल्गोरिदम का डिज़ाइन, और प्रदर्शन के नियम (अमदहल और गुस्ताफसन के) और मेट्रिक्स (स्पीडअप, दक्षता, स्केलेबिलिटी) को शामिल करता है जो उनके लाभ को सीमित और मापते हैं। यह उपक्षेत्र के डिस्ट्रीब्यूटेड-सिस्टम पक्ष का पैरेलल-कंप्यूटिंग पूरक है।
Sub-topics
Core questions
- एक गणना को कार्यों में कैसे विघटित किया जाना चाहिए और प्रोसेसरों पर कैसे मैप किया जाना चाहिए?
- कौन सा प्रोग्रामिंग मॉडल—साझा मेमोरी, मैसेज पासिंग, या एक्सेलेरेटर—किसी दिए गए आर्किटेक्चर और समस्या के लिए उपयुक्त है?
- पैरेललिज्म से प्राप्त होने वाली गति को क्या सीमित करता है, और स्केलेबिलिटी को कैसे मापा जाता है?
Key theories
- फ्लिन की वर्गीकरण प्रणाली
- पैरेलल आर्किटेक्चर को उनके इंस्ट्रक्शन और डेटा स्ट्रीम द्वारा SISD, SIMD, MISD, और MIMD में वर्गीकृत किया जाता है, एक ऐसा ढाँचा जो अभी भी वेक्टर, GPU, और मल्टीकोर मशीनों के बारे में सोच को व्यवस्थित करता है।
- अमदहल और गुस्ताफसन के नियम
- अमदहल का नियम एक निश्चित समस्या आकार के लिए प्रोग्राम के सीरियल अंश द्वारा स्पीडअप को सीमित करता है, जबकि गुस्ताफसन का पुनर्गठन यह बताता है कि बड़ी समस्याएं अधिक प्रोसेसरों को उपयोगी रूप से व्यस्त रख सकती हैं, जो एक साथ पैरेललिज्म की सीमाओं और संभावनाओं को दर्शाते हैं।
- पैरेलल डिज़ाइन पैटर्न
- बार-बार आने वाली रणनीतियाँ—कार्य और डेटा विघटन, पाइपलाइन, ज्यामितीय विघटन, और मास्टर-वर्कर—मॉडल भर में पैरेलल प्रोग्राम डिज़ाइन करने के लिए एक संरचित शब्दावली प्रदान करती हैं।
Clinical relevance
पैरेलल प्रोग्रामिंग मॉडल उच्च-प्रदर्शन और वैज्ञानिक कंप्यूटिंग, जीपीयू पर मशीन-लर्निंग प्रशिक्षण, और मल्टीकोर प्रोसेसर के रोजमर्रा के उपयोग का आधार हैं; मॉडल का चुनाव हार्डवेयर में प्राप्त करने योग्य प्रदर्शन और पोर्टेबिलिटी को निर्धारित करता है।
History
फ्लिन की 1972 की वर्गीकरण प्रणाली और अमदहल के 1967 के स्पीडअप तर्क ने शुरुआत से ही पैरेलल कंप्यूटिंग को आकार दिया; 1990 के दशक में MPI और OpenMP के साथ मानकीकृत मॉडल उभरे और 2000 के दशक में GPU कंप्यूटिंग आई, जबकि ग्रामा और सहकर्मियों की पाठ्यपुस्तकों ने पैरेलल एल्गोरिदम के डिजाइन और विश्लेषण को संहिताबद्ध किया।
Debates
- डिफ़ॉल्ट मॉडल के रूप में साझा मेमोरी बनाम मैसेज पासिंग
- साझा-मेमोरी मॉडल प्रोग्राम करने में आसान होते हैं लेकिन कम आसानी से स्केल होते हैं और सूक्ष्म डेटा रेस का जोखिम होता है, जबकि मैसेज पासिंग स्पष्ट संचार की कीमत पर बड़े क्लस्टर तक स्केल होता है; हाइब्रिड मॉडल दोनों को जोड़ते हैं, और सही डिफ़ॉल्ट कार्यभार- और आर्किटेक्चर-निर्भर रहता है।
Key figures
- Gene Amdahl
- Michael Flynn
- Vipin Kumar
- John Gustafson
Related topics
Seminal works
- grama2003
- amdahl1967
- flynn1972
Frequently asked questions
- अधिक प्रोसेसर जोड़ने से कोई भी प्रोग्राम मनमाने ढंग से तेज़ क्यों नहीं हो सकता?
- अमदहल का नियम दर्शाता है कि गणना का सीरियल भाग—वह कार्य जिसे पैरेलल नहीं किया जा सकता—कुल स्पीडअप को सीमित करता है। यदि एक छोटा सा अंश भी स्वाभाविक रूप से अनुक्रमिक है, तो प्रोसेसर की संख्या बढ़ने पर यह हावी हो जाता है, जिससे प्राप्त होने वाली त्वरण सीमित हो जाती है।