समानांतर एल्गोरिदम का विश्लेषण

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

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

परिभाषाएँ
मान लीजिए कि गणना एक मशीन पर निष्पादित की जाती है $p$ प्रोसेसर. होने देना $T_{p}$ उस समय को निरूपित करें जो गणना की शुरुआत और उसके अंत के बीच समाप्त होता है। गणना की समय जटिलता का विश्लेषण निम्नलिखित धारणाओं पर केंद्रित है:


 * द्वारा निष्पादित एक गणना का कार्य $p$प्रोसेसर प्रोसेसर द्वारा निष्पादित आदिम परिचालनों की कुल संख्या है। प्रोसेसर को सिंक्रनाइज़ करने से संचार ओवरहेड को अनदेखा करना, यह एकल प्रोसेसर पर गणना चलाने के लिए उपयोग किए गए समय के बराबर है, जिसे दर्शाया गया है $T_{1}$.
 * गहराई या स्पैन संचालन की सबसे लंबी श्रृंखला की लंबाई है जिसे डेटा निर्भरता (महत्वपूर्ण पथ) के कारण क्रमिक रूप से निष्पादित करना पड़ता है। गहराई को गणना की महत्वपूर्ण पथ लंबाई भी कहा जा सकता है। समानांतर एल्गोरिदम को डिजाइन करने में गहराई/स्पैन को कम करना महत्वपूर्ण है, क्योंकि गहराई/स्पैन न्यूनतम संभव निष्पादन समय निर्धारित करता है। वैकल्पिक रूप से, अवधि को समय के रूप में परिभाषित किया जा सकता है $T_{∞}$ अनंत संख्या में प्रोसेसर वाली एक आदर्श मशीन का उपयोग करके कंप्यूटिंग खर्च की।
 * गणना की लागत मात्रा है $pT_{p}$. यह सभी प्रोसेसरों द्वारा कंप्यूटिंग और प्रतीक्षा दोनों में खर्च किए गए कुल समय को व्यक्त करता है।

कार्य, अवधि और लागत की परिभाषाओं से कई उपयोगी परिणाम मिलते हैं:


 * कार्य कानून. लागत हमेशा कम से कम काम की होती है: $pT_{p} ≥ T_{1}$. यह इस तथ्य से पता चलता है कि $p$ प्रोसेसर अधिकतम प्रदर्शन कर सकते हैं $p$समानांतर में संचालन। * स्पैन कानून. एक सीमित संख्या $p$ प्रोसेसर अनंत संख्या से बेहतर प्रदर्शन नहीं कर सकते, इसलिए $T_{p} ≥ T_{∞}$.

इन परिभाषाओं और कानूनों का उपयोग करके, प्रदर्शन के निम्नलिखित उपाय दिए जा सकते हैं:


 * गति बढ़ाना अनुक्रमिक निष्पादन की तुलना में समानांतर निष्पादन द्वारा प्राप्त गति में वृद्धि है: $S_{p} = T_{1} / T_{p}$. जब स्पीडअप होता है $Ω(n)$ इनपुट आकार के लिए $n$ (बड़ा ओ अंकन का उपयोग करके), स्पीडअप रैखिक है, जो गणना के सरल मॉडल में इष्टतम है क्योंकि कार्य कानून का तात्पर्य है कि $T_{1} / T_{p} ≤ p$ (स्पीडअप#सुपर-लीनियर स्पीडअप|सुपर-लीनियर स्पीडअप मेमोरी पदानुक्रम प्रभावों के कारण व्यवहार में हो सकता है)। स्थिति $T_{1} / T_{p} = p$ को परफेक्ट लीनियर स्पीडअप कहा जाता है। एक एल्गोरिदम जो रैखिक स्पीडअप प्रदर्शित करता है उसे  scalability  कहा जाता है। * दक्षता प्रति प्रोसेसर स्पीडअप है, $S_{p} / p$. *समानांतरता अनुपात है $T_{1} / T_{∞}$. यह किसी भी संख्या में प्रोसेसर पर अधिकतम संभव स्पीडअप का प्रतिनिधित्व करता है। स्पैन कानून के अनुसार, समानता गति को सीमित करती है: यदि $p > T_{1} / T_{∞}$, तब: $$\frac{T_1}{T_p} \leq \frac{T_1}{T_\infty} < p.$$
 * ढिलाई है $T_{1} / (pT_{∞})$. एक से कम ढिलाई का अर्थ है (स्पैन कानून द्वारा) कि पूर्ण रैखिक गति असंभव है $p$ प्रोसेसर.

सीमित संख्या में प्रोसेसर पर निष्पादन
समानांतर एल्गोरिदम का विश्लेषण आमतौर पर इस धारणा के तहत किया जाता है कि असीमित संख्या में प्रोसेसर उपलब्ध हैं। यह अवास्तविक है, लेकिन कोई समस्या नहीं है, क्योंकि कोई भी गणना समानांतर में चल सकती है $N$ प्रोसेसर पर क्रियान्वित किया जा सकता है $p < N$ प्रत्येक प्रोसेसर को कार्य की एकाधिक इकाइयों को निष्पादित करने की अनुमति देकर प्रोसेसर। ब्रेंट का नियम नामक एक परिणाम बताता है कि कोई भी समय पर ऐसा अनुकरण कर सकता है $T_{p}$, से घिरा
 * $$T_p \leq T_N + \frac{T_1 - T_N}{p},$$

या, कम सटीक रूप से,


 * $$T_p = O \left( T_N + \frac{T_1}{p} \right) .$$

क़ानून की सीमाओं का एक वैकल्पिक कथन $T_{p}$ ऊपर और नीचे द्वारा


 * $$\frac{T_1}{p} \leq T_p \leq \frac{T_1}{p} + T_\infty$$.

दिखा रहा है कि अवधि (गहराई) $T_{∞}$ और काम $T_{1}$ एक साथ गणना समय पर उचित सीमा प्रदान करते हैं।