बहु प्रक्रमण (मल्टीप्रोसेसिंग)

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

कुछ ऑन-लाइन शब्दकोशों के अनुसार, एक मल्टीप्रोसेसर एक कंप्यूटर सिस्टम है जिसमें दो या दो से अधिक सेंट्रल प्रोसेसिंग यूनिट (मल्टीपल प्रोसेसर) होते हैं, जिनमें से प्रत्येक मुख्य मेमोरी और बाह्य उपकरणों को साझा करता है, ताकि एक साथ प्रोग्राम को प्रोसेस किया जा सके। 2009 की एक पाठ्यपुस्तक ने मल्टीप्रोसेसर सिस्टम को समान रूप से परिभाषित किया है, लेकिन यह देखते हुए कि प्रोसेसर कुछ या सभी सिस्टम की मेमोरी और I/O सुविधाओं को साझा कर सकते हैं; इसने पर्यायवाची शब्द के रूप में कसकर युग्मित प्रणाली भी दी। ऑपरेटिंग सिस्टम स्तर पर, मल्टीप्रोसेसिंग का उपयोग कभी-कभी एक सिस्टम में कई समवर्ती प्रक्रिया (कंप्यूटिंग) के निष्पादन को संदर्भित करने के लिए किया जाता है, जिसमें प्रत्येक प्रक्रिया एक अलग सीपीयू या कोर पर चल रही होती है, जो किसी एक प्रक्रिया के विपरीत होती है। जब इस परिभाषा के साथ प्रयोग किया जाता है, तो मल्टीप्रोसेसिंग को कभी-कभी कंप्यूटर मल्टीटास्किंग से अलग किया जाता है, जो केवल एक प्रोसेसर का उपयोग कर सकता है लेकिन इसे कार्यों के बीच समय के स्लाइस (यानी एक समय साझा करने की प्रणाली) में स्विच कर सकता है। मल्टीप्रोसेसिंग का अर्थ है एक से अधिक प्रोसेसर का उपयोग करके कई प्रक्रियाओं का वास्तविक समानांतर निष्पादन। मल्टीप्रोसेसिंग का मतलब यह नहीं है कि एक प्रक्रिया या कार्य एक साथ एक से अधिक प्रोसेसर का उपयोग करता है; समानांतर कंप्यूटिंग शब्द का प्रयोग आम तौर पर उस परिदृश्य को दर्शाने के लिए किया जाता है। अन्य लेखक ऑपरेटिंग सिस्टम तकनीकों को बहु क्रमादेशन के रूप में संदर्भित करना पसंद करते हैं और एक से अधिक प्रोसेसर होने के हार्डवेयर पहलू के लिए मल्टीप्रोसेसिंग शब्द आरक्षित करते हैं।  इस लेख के शेष भाग में मल्टीप्रोसेसिंग के बारे में केवल इसी हार्डवेयर अर्थ में चर्चा की गई है।

फ्लिन की टैक्सोनॉमी में, ऊपर परिभाषित मल्टीप्रोसेसर मल्टीपल इंस्ट्रक्शन, मल्टीपल डेटा मशीन हैं। जैसा कि मल्टीप्रोसेसर शब्द सामान्य रूप से कसकर युग्मित सिस्टम को संदर्भित करता है जिसमें सभी प्रोसेसर मेमोरी साझा करते हैं, मल्टीप्रोसेसर MIMD मशीनों की संपूर्ण श्रेणी नहीं होते हैं, जिसमें मल्टीकंप्यूटर सिस्टम पास करने वाले संदेश भी होते हैं।

प्रागैतिहास
संभवतः मल्टीप्रोसेसिंग के विचार की पहली अभिव्यक्ति लुइगी फेडेरिको मेनाब्रिया द्वारा 1842 में चार्ल्स बैबेज के विश्लेषणात्मक इंजन (लवलेस है द्वारा अनुवादित) के बारे में लिखी गई थी: मशीन को खेल में लाया जा सकता है ताकि एक ही समय में कई परिणाम दिए जा सकें, जो प्रक्रियाओं की पूरी मात्रा को बहुत कम कर देगा।

प्रोसेसर समरूपता
एक मल्टीप्रोसेसिंग सिस्टम में, सभी CPU समान हो सकते हैं, या कुछ विशेष उद्देश्यों के लिए आरक्षित हो सकते हैं। हार्डवेयर और ऑपरेटिंग सिस्टम सॉफ़्टवेयर डिज़ाइन विचारों का संयोजन किसी दिए गए सिस्टम में समरूपता (या इसकी कमी) निर्धारित करता है। उदाहरण के लिए, हार्डवेयर या सॉफ़्टवेयर के लिए आवश्यक हो सकता है कि केवल एक विशेष CPU सभी हार्डवेयर व्यवधानों का जवाब दे, जबकि सिस्टम में अन्य सभी कार्य CPU के बीच समान रूप से वितरित किए जा सकते हैं; या कर्नेल-मोड कोड का निष्पादन केवल एक विशेष CPU तक ही सीमित हो सकता है, जबकि उपयोगकर्ता-मोड कोड को प्रोसेसर के किसी भी संयोजन में निष्पादित किया जा सकता है। यदि इस तरह के प्रतिबंध लगाए जाते हैं तो मल्टीप्रोसेसिंग सिस्टम अक्सर डिजाइन करना आसान होता है, लेकिन वे उन सिस्टमों की तुलना में कम कुशल होते हैं जिनमें सभी सीपीयू का उपयोग किया जाता है।

सिस्टम जो सभी सीपीयू को समान रूप से व्यवहार करते हैं उन्हें सममित बहु प्रसंस्करण (एसएमपी) सिस्टम कहा जाता है। उन प्रणालियों में जहां सभी सीपीयू समान नहीं हैं, सिस्टम संसाधनों को असममित मल्टीप्रोसेसिंग (एएसएमपी), गैर-समान मेमोरी एक्सेस (एनयूएमए) मल्टीप्रोसेसिंग और कंप्यूटर क्लस्टर मल्टीप्रोसेसिंग सहित कई तरीकों से विभाजित किया जा सकता है।

मास्टर/गुलाम मल्टीप्रोसेसर सिस्टम
एक मास्टर/स्लेव मल्टीप्रोसेसर सिस्टम में, मास्टर सीपीयू कंप्यूटर के नियंत्रण में होता है और दास सीपीयू सौंपे गए कार्यों को करता है। गति और वास्तुकला के मामले में सीपीयू पूरी तरह से अलग हो सकते हैं। कुछ (या सभी) सीपीयू में साझा बस हो सकती है, प्रत्येक के पास एक निजी बस भी हो सकती है (निजी संसाधनों के लिए), या वे एक सामान्य संचार मार्ग को छोड़कर अलग-थलग हो सकते हैं। इसी तरह, सीपीयू आम रैम साझा कर सकते हैं और/या उनके पास निजी रैम हो सकती है जिसे अन्य प्रोसेसर एक्सेस नहीं कर सकते। मास्टर और गुलाम की भूमिका एक सीपीयू से दूसरे में बदल सकती है।

मास्टर/स्लेव मल्टीप्रोसेसर सिस्टम का एक प्रारंभिक उदाहरण टैंडी/रेडियो शेक [[टीआरएस-80 मॉडल II]] डेस्कटॉप कंप्यूटर है, जो फरवरी 1982 में आया और मल्टी-यूजर/मल्टी-टास्किंग ज़ेनिक्स ऑपरेटिंग सिस्टम चला, माइक्रोसॉफ्ट का यूनिक्स का संस्करण (टीआरएस कहा जाता है) -जेनिक्स). मॉडल 16 में 3 माइक्रोप्रोसेसर हैं, एक 8-बिट Zilog Z80 CPU 4MHz पर चल रहा है, एक 16-बिट Motorola 68000 CPU 6MHz पर चल रहा है और कीबोर्ड में एक Intel 8021 है। जब सिस्टम बूट किया गया था, Z-80 मास्टर था और Xenix बूट प्रक्रिया ने स्लेव 68000 को इनिशियलाइज़ किया, और फिर 68000 पर नियंत्रण स्थानांतरित कर दिया, जिसके बाद CPU ने भूमिकाओं को बदल दिया और Z-80 एक स्लेव प्रोसेसर बन गया जो सभी के लिए जिम्मेदार था। डिस्क, संचार, प्रिंटर और नेटवर्क, साथ ही कीबोर्ड और एकीकृत मॉनिटर सहित I/O संचालन, जबकि ऑपरेटिंग सिस्टम और एप्लिकेशन 68000 CPU पर चलते थे। Z-80 का उपयोग अन्य कार्यों के लिए किया जा सकता है।

पहले का TRS-80 मॉडल II, जो 1979 में जारी किया गया था, को भी एक मल्टीप्रोसेसर सिस्टम माना जा सकता था क्योंकि इसमें Z-80 CPU और Intel 8021 दोनों थे कीबोर्ड में माइक्रोप्रोसेसर। 8021 ने मॉडल II को पहला डेस्कटॉप कंप्यूटर सिस्टम बनाया जिसमें एक अलग पतले लचीले तार से जुड़ा एक अलग वियोज्य हल्का कीबोर्ड था, और संभवतः एक समर्पित माइक्रोप्रोसेसर का उपयोग करने वाला पहला कीबोर्ड, दोनों विशेषताएँ जो बाद में Apple और IBM द्वारा कॉपी की गईं।.

निर्देश और डेटा स्ट्रीम
मल्टीप्रोसेसिंग में, प्रोसेसर का उपयोग कई संदर्भों में निर्देशों के एकल अनुक्रम को निष्पादित करने के लिए किया जा सकता है (एकल निर्देश, एकाधिक डेटा या SIMD, अक्सर वेक्टर प्रसंस्करण में उपयोग किया जाता है), एक ही संदर्भ में निर्देशों के कई अनुक्रम (एकाधिक निर्देश, एकल डेटा या MISD), विफल-सुरक्षित प्रणालियों में अतिरेक (इंजीनियरिंग) के लिए उपयोग किया जाता है और कभी-कभी पाइपलाइन (कंप्यूटिंग) या हाइपर थ्रेडिंग), या कई संदर्भों में निर्देशों के कई अनुक्रमों (एकाधिक निर्देश, कई डेटा या MIMD) का वर्णन करने के लिए लागू किया जाता है।

कसकर युग्मित मल्टीप्रोसेसर सिस्टम
कसकर युग्मित मल्टीप्रोसेसर सिस्टम में कई सीपीयू होते हैं जो बस स्तर पर जुड़े होते हैं। इन सीपीयू के पास केंद्रीय साझा मेमोरी (एसएमपी या यूनिफ़ॉर्म मेमोरी एक्सेस) तक पहुंच हो सकती है, या स्थानीय और साझा मेमोरी (एसएम) (गैर-यूनिफ़ॉर्म मेमोरी एक्सेस) दोनों के साथ मेमोरी पदानुक्रम में भाग ले सकते हैं। आईबीएम p690 रेगाटा एक उच्च अंत एसएमपी प्रणाली का एक उदाहरण है। Intel Xeon प्रोसेसर व्यवसाय पीसी के लिए मल्टीप्रोसेसर बाजार पर हावी थे और 2004 में AMD के Opteron रेंज के प्रोसेसर के रिलीज़ होने तक एकमात्र प्रमुख x86 विकल्प थे। प्रोसेसर की दोनों श्रेणियों का अपना ऑनबोर्ड कैश था लेकिन साझा मेमोरी तक पहुंच प्रदान करता था; Xeon प्रोसेसर एक सामान्य पाइप के माध्यम से और Opteron प्रोसेसर सिस्टम रैंडम एक्सेस मेमोरी के लिए स्वतंत्र रास्ते के माध्यम से।

चिप मल्टीप्रोसेसर, जिसे मल्टी-कोर (कंप्यूटिंग) | मल्टी-कोर कंप्यूटिंग के रूप में भी जाना जाता है, में एक चिप पर एक से अधिक प्रोसेसर रखे जाते हैं और कसकर युग्मित मल्टीप्रोसेसिंग के सबसे चरम रूप के बारे में सोचा जा सकता है। कई प्रोसेसर वाले मेनफ्रेम सिस्टम अक्सर कसकर युग्मित होते हैं।

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

कसकर युग्मित प्रणालियाँ बेहतर प्रदर्शन करती हैं और शिथिल युग्मित प्रणालियों की तुलना में शारीरिक रूप से छोटी होती हैं, लेकिन ऐतिहासिक रूप से अधिक प्रारंभिक निवेश की आवश्यकता होती है और तेजी से मूल्यह्रास हो सकता है; शिथिल युग्मित प्रणाली में नोड्स आमतौर पर सस्ते कमोडिटी कंप्यूटर होते हैं और क्लस्टर से सेवानिवृत्ति पर स्वतंत्र मशीनों के रूप में पुनर्नवीनीकरण किए जा सकते हैं।

बिजली की खपत भी एक विचार है। गुच्छों की तुलना में कसकर युग्मित प्रणालियाँ बहुत अधिक ऊर्जा-कुशल होती हैं। ऐसा इसलिए है क्योंकि मजबूती से युग्मित प्रणालियों में शुरुआत से ही एक साथ काम करने के लिए घटकों को डिजाइन करके बिजली की खपत में काफी कमी महसूस की जा सकती है, जबकि शिथिल युग्मित प्रणालियां उन घटकों का उपयोग करती हैं जो विशेष रूप से ऐसी प्रणालियों में उपयोग के लिए अभिप्रेत नहीं थे।

लूज़ली कपल्ड सिस्टम में अलग-अलग सिस्टम पर अलग-अलग ऑपरेटिंग सिस्टम या OS संस्करण चलाने की क्षमता होती है।

यह भी देखें

 * मल्टीप्रोसेसर सिस्टम आर्किटेक्चर
 * सममित मल्टीप्रोसेसिंग
 * असममित मल्टीप्रोसेसिंग
 * मल्टी-कोर प्रोसेसर
 * बीएमडीएफएम - बाइनरी मॉड्यूलर डेटाफ्लो मशीन, एक एसएमपी एमआईएमडी रनटाइम वातावरण
 * सॉफ्टवेयर तालाबंदी
 * ओपन एचएमपीपी