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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

शिथिल युग्मित प्रणाली में अलग-अलग प्रणाली पर अलग-अलग ऑपरेटिंग प्रणाली या ओएस संस्करण चलाने की क्षमता होती है।

यह भी देखें

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