समानांतर कंप्यूटिंग
समानांतर कंप्यूटिंग समानांतर कंप्यूटिंग एक प्रकार की संगणना है जिसमें कई गणना या प्रक्रियाओं का निष्पादन एक साथ किया जाता है।. बड़ी समस्याओं को अक्सर छोटे लोगों में विभाजित किया जा सकता है, जो तब एक ही समय में हल किया जा सकता है। समानांतर कंप्यूटिंग के कई अलग-अलग रूप हैं:"इन प्रदर्शन लाभों के लिए मुख्य तकनीक-बढ़ी हुई घड़ी की आवृत्ति और होशियार लेकिन तेजी से जटिल आर्किटेक्चर-अब तथाकथित बिजली की दीवार को मार रहे हैं. कंप्यूटर उद्योग ने स्वीकार किया है कि भविष्य में प्रदर्शन में वृद्धि मुख्य रूप से मरने पर प्रोसेसर (या कोर) की संख्या बढ़ाने से आती है, बजाय इसके कि एक कोर तेजी से आगे बढ़े. समानांतर कंप्यूटरों को उस स्तर के अनुसार वर्गीकृत किया जा सकता है जिस स्तर पर हार्डवेयर मल्टी-कोर और मल्टी-प्रोसेसर के साथ एक सिंगल मशीन के भीतर कई प्रोसेसिंग एलिमेंट वाले कंप्यूटर का समर्थन करता है। , जबकि क्लस्टर, MPPs, और [ग्रिड कंप्यूटिंग | ग्रिड]] एक ही कार्य को करने के लिए कई कंप्यूटरों का उपयोग करते हैं। विशिष्ट कार्यों में तेजी लाने के लिए, पारंपरिक प्रोसेसर के साथ विशिष्ट समानांतर कंप्यूटर आर्किटेक्चर का उपयोग कभी-कभी किया जाता है।
कुछ मामलों में समानतावाद प्रोग्रामर के लिए पारदर्शी होता है, जैसे कि बिट-लेवल या इंस्ट्रक्शन-लेवल समानता में, लेकिन स्पष्ट रूप से समानांतर एल्गोरिथ्म, विशेष रूप से वे जो संगामिति का उपयोग करते हैं, क्रमिक एल्गोरिथ्म] की तुलना में लिखना अधिक कठिन होता है। , क्योंकि संगामिति संभावित सॉफ्टवेयर बग के कई नए वर्गों का परिचय देती है, जिनमें से दौड़ हालत सबसे आम हैं। संचार और तादात्म्य के बीच अलग-अलग उपकार आमतौर पर इष्टतम समानांतर कार्यक्रम प्रदर्शन प्राप्त करने के लिए सबसे बड़ी बाधाओं में से कुछ हैं। परंपरागत रूप से, कंप्यूटर सॉफ्टवेयर धारावाहिक संगणना के लिए लिखा गया है। एक समस्या को हल करने के लिए, एल्गोरिथ्म का निर्माण और निर्देशों की एक धारा प्रवाह के रूप में लागू किया जाता है। ये निर्देश एक केंद्रीय प्रसंस्करण इकाई पर एक कंप्यूटर पर निष्पादित किए जाते हैं। एक समय में केवल एक ही निर्देश निष्पादित हो सकता है - उस निर्देश के समाप्त होने के बाद, अगला एक निष्पादित होता है।
दूसरी ओर, समानांतर कंप्यूटिंग, एक समस्या को हल करने के लिए एक साथ कई प्रसंस्करण तत्वों का उपयोग करता है। यह समस्या को स्वतंत्र भागों में तोड़कर पूरा किया जाता है ताकि प्रत्येक प्रसंस्करण तत्व एल्गोरिदम के अपने हिस्से को एक साथ दूसरों के साथ निष्पादित कर सके। प्रसंस्करण तत्व विविधतापूर्ण हो सकते हैं और इसमें कई प्रोसेसर के साथ एकल कंप्यूटर, कई नेटवर्क वाले कंप्यूटर, विशेष हार्डवेयर या उपरोक्त में से कोई भी संसाधन शामिल हो सकते हैं। ऐतिहासिक रूप से समानांतर कंप्यूटिंग का उपयोग वैज्ञानिक कंप्यूटिंग के लिए किया गया था। वैज्ञानिक समस्याओं का अनुकरण, विशेष रूप से प्राकृतिक और इंजीनियरिंग विज्ञान में, जैसे मौसम विज्ञान। इसने समानांतर हार्डवेयर और सॉफ्टवेयर के डिजाइन के साथ-साथ उच्च प्रदर्शन कंप्यूटिंग का नेतृत्व किया।
बिजली की खपत की समस्या से निपटने के लिए और प्रमुख केंद्रीय प्रसंस्करण इकाई (सीपीयू या प्रोसेसर) निर्माताओं ने कई कोर के साथ बिजली कुशल प्रोसेसर का उत्पादन शुरू किया। कोर प्रोसेसर की कंप्यूटिंग इकाई है और मल्टी-कोर प्रोसेसर में प्रत्येक कोर स्वतंत्र होता है और समान मेमोरी को समवर्ती रूप से एक्सेस कर सकता है। मल्टी-कोर प्रोसेसर ने डेस्कटॉप कंप्यूटर में समानांतर कंप्यूटिंग लाई है। इस प्रकार धारावाहिक कार्यक्रमों का समानांतरकरण एक मुख्यधारा का प्रोग्रामिंग कार्य बन गया है। 2012 में क्वाड-कोर प्रोसेसर डेस्कटॉप कंप्यूटर के लिए मानक बन गया, जबकि सर्वर] में 10 और 12 कोर प्रोसेसर हैं। मूर के नियम से यह अनुमान लगाया जा सकता है कि प्रति प्रोसेसर कोर की संख्या हर १ months-२४ महीने में दोगुनी हो जाएगी। इसका मतलब यह हो सकता है कि 2020 के बाद एक विशिष्ट प्रोसेसर में दर्जनों या सैकड़ों कोर होंगे।  एक ऑपरेटिंग सिस्टम यह सुनिश्चित कर सकता है कि उपलब्ध कार्यों और उपयोगकर्ता कार्यक्रमों को उपलब्ध कोर पर समानांतर में चलाया जाए। हालांकि, मल्टी-कोर आर्किटेक्चर का पूरा फायदा उठाने के लिए एक सीरियल सॉफ्टवेयर प्रोग्राम के लिए प्रोग्रामर को कोड को पुनर्गठन और समानांतर करने की आवश्यकता होती है। एप्लिकेशन सॉफ़्टवेयर रनटाइम की गति को अब आवृत्ति स्केलिंग के माध्यम से प्राप्त नहीं किया जाएगा, इसके बजाय प्रोग्रामर को मल्टीकोर आर्किटेक्चर की बढ़ती कंप्यूटिंग शक्ति का लाभ उठाने के लिए अपने सॉफ़्टवेयर कोड को समानांतर करने की आवश्यकता होगी।