समानांतर और वितरित कंप्यूटिंग


15

समानांतर और वितरित कंप्यूटिंग के बीच अंतर क्या है? जब स्केलेबिलिटी और दक्षता की बात आती है, तो मशीनों के समूहों में गणना से निपटने वाले समाधानों को देखना बहुत आम है, और कभी-कभी इसे समानांतर प्रसंस्करण, या वितरित प्रसंस्करण के रूप में संदर्भित किया जाता है।

एक निश्चित तरीके से, गणना हमेशा समानांतर होती है, क्योंकि समवर्ती चीजें चल रही हैं। लेकिन क्या वितरित गणना केवल एक से अधिक मशीन के उपयोग से संबंधित है, या क्या कोई और विशिष्टताएं हैं जो इन दोनों प्रकार के प्रसंस्करण को अलग करती हैं? उदाहरण के लिए, यह कहना बेमानी नहीं होगा कि एक गणना समानांतर है और वितरित की गई है ?

जवाबों:


16

बस सेट करें, 'समानांतर' का मतलब अलग-अलग संसाधनों (सीपीयू) पर समवर्ती रूप से चल रहा है, जबकि 'वितरित' का मतलब है अलग-अलग कंप्यूटरों पर दौड़ना, जिसमें नेटवर्क से जुड़े मुद्दे शामिल हैं।

उदाहरण के लिए OpenMP का उपयोग करते हुए समानांतर कंप्यूटिंग वितरित नहीं की गई है, जबकि संदेश पासिंग के साथ समानांतर कंप्यूटिंग अक्सर वितरित की जाती है।

एक 'वितरित लेकिन समानांतर नहीं' सेटिंग में होने का अर्थ होगा संसाधनों का उपयोग करना ताकि यह शायद ही कभी सामना किया जाए, लेकिन यह वैचारिक रूप से संभव है।


4

शब्द "समानांतर कंप्यूटिंग" और "वितरित कंप्यूटिंग" निश्चित रूप से एक बड़ा ओवरलैप है, लेकिन आगे विभेदित किया जा सकता है। वास्तव में, आपने पहले ही अपने प्रश्न में ऐसा किया था, बाद में "समानांतर प्रसंस्करण" और "वितरित प्रसंस्करण" के बारे में पूछकर।

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

शब्द "समानांतर कंप्यूटिंग" आगे परिभाषित होने की प्रक्रिया में भी है, उदाहरण के लिए "समानांतर" और "समवर्ती" शब्दों के बीच स्पष्ट रूप से अंतर करके, जहां - मोटे तौर पर - पहले डेटा समानांतरता और बाद के कार्य समानता को संदर्भित करता है , हालांकि यहां वास्तव में सख्त और बाध्यकारी रक्षात्मक हैं।

तो कोई ऐसा कह सकता था

  • "वितरित प्रसंस्करण" आमतौर पर (हालांकि जरूरी नहीं) का मतलब है कि यह "समानांतर प्रसंस्करण" भी है
  • "वितरित कंप्यूटिंग" अधिक सामान्य है, और उन पहलुओं को भी शामिल करता है जो समानता से संबंधित नहीं हैं
  • और जाहिर है, "समानांतर कंप्यूटिंग" / "समानांतर प्रसंस्करण" का अर्थ यह नहीं है कि यह "वितरित" है

3

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

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.