एक वितरित एल्गोरिथम
एक वितरित एल्गोरिथ्म कंप्यूटर सॉफ़्टवेयर पर उपयोग किया जाने वाला एक विशिष्ट प्रकार का एल्गोरिथ्म है जिसमें विभिन्न, परस्पर जुड़े प्रोसेसर का उपयोग करना चाहिए। वितरित एल्गोरिदम एक ही समय में एल्गोरिथ्म के विभिन्न भागों को चलाने के लिए जिम्मेदार है, प्रत्येक एक अलग प्रोसेसर पर। सॉफ्टवेयर को ठीक से चलाने के लिए प्रोसेसर को एक दूसरे के साथ संवाद करना चाहिए।
वितरित एल्गोरिथ्म को समझने के लिए, यह जांचना सबसे आसान है कि एक विशिष्ट एल्गोरिथ्म क्या है। एक एल्गोरिथ्म एक परिभाषित प्रक्रिया है जो वांछित प्रक्रिया को पूरा करने या किसी समस्या को हल करने के लिए उठाए जाने वाले कदमों को पूरा करने के लिए शुरू से रेखांकित करती है। उदाहरण के लिए, एक पत्र मेल करने के लिए एक एल्गोरिथ्म कुछ की तर्ज पर जाना होगा:
1. लिफाफा प्राप्त करें
2. खुला लिफाफा
3. चिट्ठी डालें
4. बंद लिफाफा
5. स्टाम्प संलग्न करें
यह प्रक्रिया पूरी होने तक जारी रहेगी। कुछ कदम अन्य चरणों में शाखा कर सकते हैं। ये उस व्यक्ति को बताएंगे कि अगर वह मुख्य चरणों में से एक को पूरा नहीं कर सका और आखिरकार उसे मूल एल्गोरिथ्म में ले जाएगा। महत्वपूर्ण बात यह है कि एल्गोरिथ्म के अंत में कोई फर्क नहीं पड़ता कि व्यक्ति उस तक पहुंचने के लिए कौन सा रास्ता अपनाता है।
तकनीकी रूप से कुछ भी जो एक परिभाषित प्रक्रिया है, एक एल्गोरिथ्म हो सकता है, जैसे कि पत्र भेजने के लिए उपरोक्त उदाहरण। एक कंप्यूटर एल्गोरिदम एक एल्गोरिथ्म है जिसे कंप्यूटर को यह बताने के लिए डिज़ाइन किया गया है कि क्या करना है। इसके बीच में कई चरणों के साथ एक शुरुआत और एक अंतिम चरण है। यह कंप्यूटर को एक क्रिया करने में मदद करता है और यह निर्देश देता है कि यदि कुछ गलत होता है तो उसे क्या करना चाहिए। यदि किसी फ़ाइल को कंप्यूटर की आवश्यकता नहीं है, तो यह उसे उस कदम को छोड़ने या उसके स्थान पर एक वैकल्पिक कदम करने के लिए निर्देश दे सकता है।
एक एल्गोरिथ्म और एक वितरित एल्गोरिथ्म के बीच का अंतर बस यह है कि वितरित एल्गोरिदम को अलग-अलग प्रोसेसर पर चलाने के लिए डिज़ाइन किया गया है, जबकि एक नियमित कंप्यूटर एल्गोरिथ्म नहीं होगा। प्रत्येक प्रोसेसर एक ही समय में समग्र एल्गोरिथ्म का एक अलग हिस्सा प्रदर्शन कर रहा है और फिर परिणाम प्रस्तुत कर रहा है।
वितरित एल्गोरिदम का उपयोग करते समय कई समस्याएं होती हैं। प्रोसेसर में से एक विफल हो सकता है, जिससे एल्गोरिदम का वह हिस्सा काम करना बंद कर सकता है। प्रोसेसर के बीच एक संचार समस्या भी हो सकती है जो वितरित एल्गोरिदम को प्रक्रिया के अंत तक पहुंचने से रोकती है। कई प्रोग्रामर अध्ययन ने इन समस्याओं को दूर करने के तरीके खोजने के लिए एल्गोरिदम का वितरण किया और सुनिश्चित किया कि तकनीकी त्रुटि होने पर भी एल्गोरिथम पूरा हो गया है।