प्रोसेसर और कोर की संख्या दोगुनी या चौगुनी करने पर यह उम्मीद करना आसान है कि प्रोग्राम भी उतनी ही जल्दी पूरा हो जाएगा। लेकिन वास्तव में चलाने पर अक्सर महसूस होने वाली गति उम्मीद से कहीं कम बढ़ती है। जिस हिस्से को समांतर रूप से बाँटा नहीं जा सकता, वही पूरी प्रक्रिया की गति को सीमित करता है—यही ‘अम्डाल के नियम (Amdahl’s Law)’ की मूल अंतर्दृष्टि है।
सरल शब्दों में, अम्डाल का नियम बताता है कि ‘जब किसी काम के केवल एक हिस्से को बेहतर बनाया जाता है या समांतर रूप से चलाया जाता है, तो समग्र गति-वृद्धि अनुपात की ऊपरी सीमा उस क्रमिक हिस्से से तय होती है जिसे बदला नहीं गया।’ कंप्यूटर वैज्ञानिक जीन अम्डाल (Gene Amdahl) ने 1967 में AFIPS के वसंतकालीन संयुक्त कंप्यूटर सम्मेलन में प्रस्तुत शोधपत्र ‘बड़े पैमाने की कंप्यूटिंग क्षमताएँ प्राप्त करने के लिए एकल प्रोसेसर दृष्टिकोण की वैधता (Validity of the Single Processor Approach to Achieving Large Scale Computing Capabilities)’ में यह विचार रखा था।
इस सामग्री में हम क्रम से देखेंगे कि अम्डाल के नियम में गति-वृद्धि अनुपात का क्या अर्थ है, क्रमिक अनुपात ऊपरी सीमा कैसे तय करता है, खाना बनाने और असेंबली लाइन जैसे रोज़मर्रा के उदाहरण तथा मल्टीकोर की वास्तविकता क्या बताते हैं, और गुस्ताफ़सन के नियम से इसका अंतर तथा उपयोग क्या है।
अम्डाल का नियम समांतरता की कौन-सी सीमा बताता है
गति-वृद्धि अनुपात और क्रमिक हिस्से का अर्थ

अम्डाल का नियम मूलतः ‘सिस्टम के किसी हिस्से को बेहतर बनाने पर समग्र प्रदर्शन कितना बढ़ता है’ से संबंधित एक सामान्य सिद्धांत है। आज इसका सबसे अधिक उपयोग समांतर कंप्यूटिंग के सैद्धांतिक गति-वृद्धि अनुपात का अनुमान लगाने में होता है। इसका मुख्य बिंदु पूरे काम को एक साथ बढ़ाना नहीं, बल्कि उसे समांतर रूप से बाँटे जा सकने वाले हिस्से और अनिवार्य रूप से क्रम में किए जाने वाले हिस्से में अलग करके देखना है।
यदि कुल निष्पादन समय का समांतर रूप से बाँटा जा सकने वाला अनुपात p और प्रोसेसरों या कोर की संख्या N हो, तो सैद्धांतिक गति-वृद्धि अनुपात 1 को ((1-p) + p/N) से भाग देने पर मिलता है। इसी बात को क्रमिक अनुपात s के रूप में लिखें, तो गति-वृद्धि अनुपात 1 को (s + (1-s)/N) से भाग देने पर मिलता है। N बढ़ने के साथ समांतर हिस्से का प्रभाव घटता है, लेकिन क्रमिक हिस्सा s जस का तस रहता है। प्रोसेसरों की संख्या अनंत तक बढ़ाने पर भी गति-वृद्धि अनुपात 1/s से अधिक नहीं हो सकता।
- गति-वृद्धि अनुपात (Speedup): सुधार से पहले के निष्पादन समय को सुधार के बाद के निष्पादन समय से भाग देने पर मिलने वाला मान।
- क्रमिक अनुपात (Serial Fraction): समय का वह अनुपात जिसमें काम को एक साथ बाँटा नहीं जा सकता और क्रम से संसाधित करना पड़ता है।
- समांतर अनुपात (Parallel Fraction): समय का वह अनुपात जिसमें काम को कई प्रोसेसरों में बाँटकर एक साथ चलाया जा सकता है।

कोर बढ़ाने पर भी गति में कम अंतर क्यों महसूस होता है

केवल सूत्र देखने पर बात अमूर्त लग सकती है, इसलिए आम तौर पर बताई जाने वाली ऊपरी सीमाओं पर विचार करने से इसे सहज रूप से समझा जा सकता है। यदि काम का केवल आधा हिस्सा समांतर रूप से बाँटा जा सके, तो कोर की संख्या कितनी भी बढ़ा दें, समग्र गति-वृद्धि अनुपात अधिकतम दोगुना ही रहेगा। समांतर रूप से बाँटा जा सकने वाला अनुपात 95 प्रतिशत होने पर भी सैद्धांतिक ऊपरी सीमा बीस गुना है। ऐसा इसलिए है क्योंकि बचा हुआ 5 प्रतिशत क्रमिक हिस्सा पूरी प्रक्रिया की गति को सीमित करता है।
(1) अतिरिक्त लाभ जल्दी घटने लगता है
क्रमिक हिस्से का अनुपात समान रहने पर कोर की संख्या 2 से 4 और फिर 8 करने का लाभ लगातार कम होता जाता है। समांतर हिस्सा पहले ही छोटा हो जाने के बाद क्रमिक हिस्सा बाधा बन जाता है।
(2) संचार और समकालिकीकरण भी क्रमिक काम के करीब हैं
व्यवहार में काम को अलग-अलग कोर में बाँटने पर परिणाम इकट्ठा करने, लॉक लगाने और मेमोरी की स्थिति का तालमेल बैठाने में समय लगता है। यह लागत सूत्र की ‘पूर्ण समांतरता’ की धारणा के बाहर है, इसलिए अनुभव में मिलने वाला गति-वृद्धि अनुपात सैद्धांतिक मान से भी कम हो सकता है।
(3) एक पंक्ति की बाधा पूरी प्रक्रिया का प्रदर्शन तय कर देती है
फ़ाइल पढ़ने, आरंभीकरण या अंतिम जोड़ जैसे छोटे क्रमिक कोड भी, यदि उनका अनुपात नगण्य न हो, तो ऊपरी सीमा को काफ़ी घटा देते हैं। यही कारण है कि मल्टीकोर CPU और GPU त्वरण की रूपरेखा बनाते समय ‘कहाँ समांतरकरण करें’ से पहले ‘कहाँ क्रमिक काम बचा है’ पूछा जाता है।
खाना बनाने और असेंबली लाइन से रोज़मर्रा की उपमाएँ

अम्डाल के नियम की यही संरचना कंप्यूटर के बाहर भी दिखाई देती है। दस मेहमानों के लिए रात का खाना तैयार करने की स्थिति की कल्पना करें। सहायक बढ़ाने से सब्ज़ियाँ काटने और भूनने का काम तेज़ हो जाता है, लेकिन लोग अधिक होने से ओवन में पकने का समय कम नहीं होता। यदि ओवन क्रमिक हिस्सा है, तो मदद करने वाले हाथ कितने भी बढ़ा दें, रात का खाना तैयार होने का कुल समय उसी हिस्से से बँधा रहेगा।
कारखाने की असेंबली लाइन भी ऐसी ही होती है। कई स्टेशनों पर एक साथ पुर्ज़े जोड़े जाएँ, तब भी यदि अंतिम जाँच या पैकिंग केवल एक कतार में होती है, तो उस कतार की प्रसंस्करण क्षमता पूरी प्रक्रिया की गति तय करती है। बैठकों में भी जानकारी जुटाने का काम बाँटा जा सकता है, लेकिन निर्णय लेने के लिए एक बार सहमति बनाने की प्रक्रिया को समांतर रूप से चलाना कठिन है।
रोज़मर्रा में ध्यान देने योग्य बातें
- बाधा (Bottleneck): सबसे धीमा क्रमिक हिस्सा पूरे प्रवाह को नियंत्रित करता है।
- बाँटा जा सकने वाला काम (Parallel Work): वह हिस्सा जिसे स्वतंत्र रूप से एक साथ किया जा सकता है।
- समन्वय (Coordination): परिणाम इकट्ठा करने और क्रम का तालमेल बैठाने की लागत भी अनुभव में मिलने वाली गति घटाती है।
गुस्ताफ़सन के नियम के साथ इसे कैसे समझें

अम्डाल का नियम ‘समस्या का आकार स्थिर रखते हुए’ प्रोसेसर बढ़ाने पर आने वाली ऊपरी सीमा दिखाता है। इसके विपरीत, जॉन गुस्ताफ़सन (John Gustafson) द्वारा लगभग 1988 के आसपास व्यवस्थित किया गया गुस्ताफ़सन का नियम (Gustafson’s Law) इस दृष्टिकोण पर आधारित है कि प्रोसेसर बढ़ने पर समस्या का आकार भी बढ़ाकर उतने ही समय में अधिक काम किया जाए। तय काम को जल्दी पूरा करने और उसी समयसीमा में अधिक सूक्ष्म सिमुलेशन चलाने के प्रश्न अलग हैं।
(1) स्थिर आकार की समस्याओं में अम्डाल का नियम सटीक अंतर्दृष्टि देता है
जब समान डेटा और समान रिज़ॉल्यूशन के साथ लक्ष्य ‘अधिक तेज़’ काम करना हो, तो क्रमिक अनुपात घटाना मुख्य बात है। एल्गोरिदम बदलना, I/O कम करना और अनावश्यक समकालिकीकरण हटाना इसी तरह की रूपरेखा के उदाहरण हैं।
(2) पैमाना बढ़ाने पर गुस्ताफ़सन का नियम उपयोगी होता है
मौसम संबंधी और वैज्ञानिक गणनाओं जैसी समस्याओं में, जहाँ ग्रिड या नमूनों की संख्या बढ़ाई जा सकती है, कोर बढ़ने के साथ समांतर रूप से किए जाने वाले काम की मात्रा भी बढ़ती है, जिससे व्यावहारिक लाभ अधिक हो सकता है।
(3) दोनों को विरोधी न मानें
इनमें से किसी एक सूत्र के गलत होने की बात नहीं है; ये ‘क्या स्थिर रखें और क्या बढ़ाएँ’ से जुड़े अलग-अलग परिदृश्य हैं। उत्पाद बनाते समय पहले तय करें कि लक्ष्य विलंब घटाना है या प्रसंस्करण क्षमता और पैमाना बढ़ाना, फिर उसी के अनुरूप दृष्टिकोण अपनाएँ।
केवल कोर की संख्या के विज्ञापन देखकर उम्मीद बढ़ाने के बजाय पहले यह मापना ज़रूरी है कि हमारे काम में कौन-से हिस्से क्रमिक बने हुए हैं। समांतरकरण की सफलता इस बात से अधिक जुड़ी है कि बाँटे न जा सकने वाले समय को कितना घटाया गया, बजाय इसके कि कितने कोर खरीदे गए।
अम्डाल का नियम वह सिद्धांत है जिसके अनुसार केवल समांतर रूप से बाँटे जा सकने वाले हिस्से को बेहतर बनाने पर भी समग्र गति-वृद्धि अनुपात की ऊपरी सीमा क्रमिक हिस्से के अनुपात से तय होती है। कोर बढ़ाने की तुलना में बाधा बनने वाले क्रमिक हिस्से को ढूँढ़कर घटाना प्रदर्शन की सीमा को अधिक सीधे प्रभावित करता है।
प्रोसेसरों की संख्या से पहले उस समय को मापना जिसे बाँटा नहीं जा सकता—यही व्यवहार में अम्डाल के नियम का समझदारी से उपयोग करने का पहला कदम है।