मेमोरी-बाउंड फ़ंक्शन: Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Type of computing function}} {{No footnotes|date=September 2020}} मेमोरी बाउंड एक ऐसी स्थिति को संद...")
 
No edit summary
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{short description|Type of computing function}}
{{short description|Type of computing function}}
{{No footnotes|date=September 2020}}
'''मेमोरी बाउंड''' एक ऐसी स्थिति को संदर्भित करता है जिसमें किसी [[कम्प्यूटेशनल समस्या]] को पूरा करने का समय मुख्य रूप से कार्यशील [[आंकड़े]] को रखने के लिए आवश्यक मुक्त कंप्यूटर मेमोरी की मात्रा से तय होता है। यह एल्गोरिदम के विपरीत है जो गणना-बद्ध हैं, जहां प्राथमिक संगणना चरणों की संख्या निर्णायक कारक है।
मेमोरी बाउंड एक ऐसी स्थिति को संदर्भित करता है जिसमें किसी [[कम्प्यूटेशनल समस्या]] को पूरा करने का समय मुख्य रूप से कार्यशील [[आंकड़े]] को रखने के लिए आवश्यक मुफ्त कंप्यूटर मेमोरी की मात्रा से तय होता है। यह एल्गोरिदम के विपरीत है जो गणना-बद्ध हैं, जहां प्राथमिक संगणना चरणों की संख्या निर्णायक कारक है।


[[स्मृति]] और संगणना सीमाओं को कभी-कभी एक दूसरे के विरुद्ध व्यापार किया जा सकता है, उदा। प्रारंभिक परिणामों को सहेजकर और पुन: उपयोग करके या लुकअप तालिकाओं का उपयोग करके।
[[स्मृति|मेमोरी]] और संगणना सीमाओं को कभी-कभी एक दूसरे के विरुद्ध विक्रय किया जा सकता है, उदाहरण प्रारंभिक परिणामों को सहेजकर और पुन: उपयोग करके या लुकअप तालिकाओं का उपयोग करके किया जा सकता है।


== मेमोरी-बाउंड फ़ंक्शंस और मेमोरी फ़ंक्शंस ==
== मेमोरी-बाउंड फ़ंक्शंस और मेमोरी फ़ंक्शंस ==
मेमोरी-बाउंड [[सबरूटीन]] और मेमोरी फ़ंक्शंस संबंधित हैं जिसमें दोनों में व्यापक मेमोरी एक्सेस शामिल है, लेकिन दोनों के बीच एक अंतर मौजूद है।
मेमोरी-बाउंड [[सबरूटीन|फ़ंक्शंस]] और मेमोरी फ़ंक्शंस संबंधित हैं जिसमें दोनों में व्यापक मेमोरी एक्सेस सम्मिलित है, लेकिन दोनों के बीच एक अंतर सम्मिलित है।


मेमोरी फ़ंक्शंस एक [[गतिशील प्रोग्रामिंग]] तकनीक का उपयोग करते हैं जिसे [[memoization]] कहा जाता है ताकि पुनरावर्तन की अक्षमता को दूर किया जा सके। यह उप-समस्याओं के समाधान की गणना और भंडारण के सरल विचार पर आधारित है ताकि बाद में इष्टतम उप-संरचना को फिर से गणना किए बिना समाधानों का पुन: उपयोग किया जा सके। मेमोइज़ेशन का लाभ उठाने वाला सबसे प्रसिद्ध उदाहरण एक [[ कलन विधि ]] है जो [[फाइबोनैचि संख्या]]ओं की गणना करता है। निम्नलिखित [[स्यूडोकोड]] पुनरावर्तन और संस्मरण का उपयोग करता है, और [[रैखिक समय]] में चलता है:
मेमोरी फ़ंक्शंस एक [[गतिशील प्रोग्रामिंग|गतिक क्रमादेशन]] तकनीक का उपयोग करते हैं जिसे [[memoization|मेमोइज़ेशन]] कहा जाता है जिससे कि पुनरावर्तन की अक्षमता को दूर किया जा सके। यह उप-समस्याओं के समाधान की गणना और भंडारण के सरल विचार पर आधारित है जिससे कि बाद में इष्टतम उप-संरचना को फिर से गणना किए बिना समाधानों का पुन: उपयोग किया जा सके। मेमोइज़ेशन का लाभ उठाने वाला सबसे प्रसिद्ध उदाहरण [[ कलन विधि |कलन विधि]] है जो [[फाइबोनैचि संख्या]]ओं की गणना करता है। निम्नलिखित [[स्यूडोकोड]] पुनरावर्तन और संस्मरण का उपयोग करता है, और [[रैखिक समय|रैखिक सीपीयू समय]] में चलता है:[[Index.php?title=रैखिक समय]]
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
  Fibonacci (n)
  Fibonacci (n)
Line 33: Line 32:
  }
  }
</syntaxhighlight>
</syntaxhighlight>
उपरोक्त की तुलना एक एल्गोरिदम से करें जो केवल रिकर्सन का उपयोग करता है, और [[घातीय समय]] CPU समय में चलता है:
उपरोक्त की तुलना एल्गोरिदम से करें जो केवल रिकर्सन का उपयोग करता है, और [[घातीय समय]] सीपीयू समय में चलता है:
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
  Recursive_Fibonacci (n)
  Recursive_Fibonacci (n)
Line 45: Line 44:
  }
  }
</syntaxhighlight>
</syntaxhighlight>
जबकि रिकर्सिव-ओनली एल्गोरिथम, रिकर्सन और मेमोइज़ेशन का उपयोग करने वाले एल्गोरिथम की तुलना में सरल और अधिक सुरुचिपूर्ण है, बाद वाले में पूर्व की तुलना में काफी कम समय की जटिलता है।
जबकि रिकर्सिव-ओनली एल्गोरिथम, रिकर्सन और मेमोइज़ेशन का उपयोग करने वाले एल्गोरिथम की तुलना में सरल और अधिक सुरुचिपूर्ण है, बाद वाले में पूर्व की तुलना में काफी कम काल जटिलता है।


मेमोरी-बाउंड फ़ंक्शन शब्द हाल ही में सामने आया है और मुख्य रूप से एक्सओआर का उपयोग करने वाले फ़ंक्शन का वर्णन करने के लिए उपयोग किया जाता है और इसमें कंप्यूटेशंस की एक श्रृंखला होती है जिसमें प्रत्येक कंप्यूटेशन पिछले कंप्यूटेशन पर निर्भर करता है। जबकि मेमोरी फ़ंक्शंस लंबे समय से समय की जटिलता को सुधारने में एक महत्वपूर्ण अभिनेता रहे हैं, मेमोरी-बाउंड फ़ंक्शंस में बहुत कम एप्लिकेशन देखे गए हैं। हाल ही में{{when|date=September 2011}}, हालांकि, वैज्ञानिकों ने स्पैमर्स को संसाधनों का दुरुपयोग करने से हतोत्साहित करने के साधन के रूप में मेमोरी-बाउंड फ़ंक्शंस का उपयोग करके एक विधि प्रस्तावित की है, जो उस क्षेत्र में एक बड़ी सफलता हो सकती है।
"मेमोरी-बाउंड फ़ंक्शन" शब्द हाल ही में सामने आया है और मुख्य रूप से XOR का उपयोग करने वाले फ़ंक्शन का वर्णन करने के लिए उपयोग किया जाता है और इसमें कंप्यूटेशंस की श्रृंखला होती है जिसमें प्रत्येक कंप्यूटेशन पिछले कंप्यूटेशन पर निर्भर करता है। जबकि मेमोरी फ़ंक्शंस लंबे समय से समय की जटिलता को सुधारने में महत्वपूर्ण कर्ता रहे हैं, मेमोरी-बाउंड फ़ंक्शंस में बहुत कम अनुप्रयोग देखे गए हैं। हाल ही में, वैज्ञानिकों ने स्पैमर्स को संसाधनों का दुरुपयोग करने से निराशजनक करने के साधन के रूप में मेमोरी-बाउंड फ़ंक्शंस का उपयोग करके एक विधि प्रस्तावित की है, जो उस क्षेत्र में एक बड़ी सफलता हो सकती है।


== स्पैम को रोकने के लिए मेमोरी-बाउंड फ़ंक्शंस का उपयोग करना ==
== स्पैम को रोकने के लिए मेमोरी-बाउंड फ़ंक्शंस का उपयोग करना ==
मेमोरी-बाउंड फ़ंक्शंस काम के सबूत में उपयोगी हो सकते हैं | प्रूफ-ऑफ़-वर्क सिस्टम जो [[स्पैमिंग]] को रोक सकता है, जो [[इंटरनेट]] पर महामारी के अनुपात की समस्या बन गया है।
मेमोरी-बाउंड फ़ंक्शंस प्रूफ-ऑफ़-वर्क सिस्टम में उपयोगी हो सकते हैं जो [[स्पैमिंग|स्पैम]] को रोक सकता है, [[इंटरनेट]] पर संक्रामक के अनुपात की समस्या बन गया है।


1992 में, IBM के अनुसंधान वैज्ञानिक [[सिंथिया डवर्क]] और [[मोनी नोर]] ने CRYPTO 1992 में एक पेपर प्रकाशित किया जिसका शीर्षक मूल्य निर्धारण के माध्यम से प्रसंस्करण या {{Not a typo|Combatting}} जंक मेल,<ref>{{cite journal |title=Pricing via Processing or {{Not a typo|Combatting}} Junk Mail |last1=Dwork |first1= Cynthia |author-link1=Cynthia Dwork |last2=Naor |first2=Moni |author-link2=Moni Naor |url=https://www.iacr.org/cryptodb/data/paper.php?pubkey=1268 |doi=10.1007/3-540-48071-4_10 |journal=Advances in Cryptology – CRYPTO 1992, 12th Annual International Cryptology Conference, Santa Barbara, California, USA, August 16-20, 1992, Proceedings |year=1992 |pages=139–147|doi-access=free }} ([http://www.wisdom.weizmann.ac.il/~naor/PAPERS/pvp.pdf updated version of same])</ref> दुरुपयोग करने वालों को स्पैम भेजने से रोकने के लिए [[सीपीयू बाध्य]] कार्यों का उपयोग करने की संभावना का सुझाव देना। यह योजना इस विचार पर आधारित थी कि यदि संसाधनों के दुरुपयोग की लागत नगण्य है तो कंप्यूटर उपयोगकर्ताओं द्वारा संसाधन का दुरुपयोग करने की संभावना अधिक होती है: अंतर्निहित कारण स्पैम इतना बड़ा हो गया है कि [[ ईमेल ]] भेजने से स्पैमर्स के लिए मामूली लागत आती है।
1992 में, आईबीएम के अनुसंधान वैज्ञानिक [[सिंथिया डवर्क]] और [[मोनी नोर]] ने क्रिप्टो 1992 में पेपर प्रकाशित किया जिसका शीर्षक प्राइसिंग वाया प्रोसेसिंग या कॉम्बैटिंग जंक मेल था,<ref>{{cite journal |title=Pricing via Processing or {{Not a typo|Combatting}} Junk Mail |last1=Dwork |first1= Cynthia |author-link1=Cynthia Dwork |last2=Naor |first2=Moni |author-link2=Moni Naor |url=https://www.iacr.org/cryptodb/data/paper.php?pubkey=1268 |doi=10.1007/3-540-48071-4_10 |journal=Advances in Cryptology – CRYPTO 1992, 12th Annual International Cryptology Conference, Santa Barbara, California, USA, August 16-20, 1992, Proceedings |year=1992 |pages=139–147|doi-access=free }} ([http://www.wisdom.weizmann.ac.il/~naor/PAPERS/pvp.pdf updated version of same])</ref> जो दुरुपयोग करने वालों को स्पैम भेजने से रोकने के लिए [[सीपीयू बाध्य|सीपीयू-बाउंड फ़ंक्शंस]] का उपयोग करने की संभावना का सुझाव देता है। यह योजना इस विचार पर आधारित थी कि यदि संसाधनों के दुरुपयोग की लागत नगण्य है तो कंप्यूटर उपयोगकर्ताओं द्वारा संसाधन का दुरुपयोग करने की संभावना अधिक होती है: अंतर्निहित कारण स्पैम इतना बड़ा हो गया है कि [[ ईमेल | ईमेल]] भेजने से स्पैमर्स के लिए मामूली लागत आती है।


Dwork और Naor ने प्रस्तावित किया कि महंगे [[CPU]] संगणना के रूप में एक अतिरिक्त लागत को इंजेक्ट करके स्पैमिंग को कम किया जा सकता है: CPU-बाउंड फ़ंक्शंस प्रत्येक संदेश के लिए प्रेषक की मशीन पर CPU संसाधनों का उपभोग करेगा, इस प्रकार भारी मात्रा में स्पैम को एक में भेजे जाने से रोका जा सकेगा। एक छोटी सी अवधि में।
डवर्क और नोर ने प्रस्तावित किया कि महंगे [[CPU|सीपीयू]] संगणना के रूप में अतिरिक्त लागत को इंजेक्ट करके स्पैमिंग को कम किया जा सकता है: सीपीयू-बाउंड फ़ंक्शंस प्रत्येक संदेश के लिए प्रेषक की मशीन पर सीपीयू संसाधनों का उपभोग करेगा, इस प्रकार भारी मात्रा में स्पैम को एक छोटी सी अवधि में भेजे जाने से रोका जा सकेगा।  


बुनियादी योजना जो दुरुपयोग से बचाती है वह इस प्रकार है:<br>
दुरुपयोग से बचाने वाली मूल योजना इस प्रकार है:<br>{{math|''S''}} को प्रेषक, {{math|''R''}} को प्राप्तकर्ता और {{math|''M''}} एक ई-मेल है। यदि {{math|''R''}}, {{math|''S''}} से ई-मेल प्राप्त करने के लिए पहले से सहमत हैं , तब {{math|''M''}} सामान्य तरीके से प्रेषित किया जाता है। अन्यथा, {{math|''S''}} कुछ फ़ंक्शन {{math|''G(M)''}} की गणना करता है {{math|''R''}} को {{math|''(M, G(M))''}} भेजता है। यदि हाँ, {{math|''R''}}, {{math|''M''}}. को स्वीकार करता है। अन्यथा, {{math|''R''}}, {{math|''M''}} को अस्वीकार करता है। <s>दाईं ओर का आंकड़ा उन स्थितियों को दर्शाता है जिनमें कोई पूर्व समझौता नहीं था</s>।
होने देना {{math|''S''}} प्रेषक बनें, {{math|''R''}} प्राप्तकर्ता हो, और {{math|''M''}} एक ई-मेल हो। अगर {{math|''R''}} से ई-मेल प्राप्त करने के लिए पहले से सहमत हैं {{math|''S''}}, तब {{math|''M''}} सामान्य तरीके से प्रेषित होता है। अन्यथा, {{math|''S''}} कुछ फ़ंक्शन की गणना करता है {{math|''G(M)''}} और भेजता है {{math|''(M, G(M))''}} को {{math|''R''}}. {{math|''R''}} जांचता है कि यह क्या प्राप्त करता है {{math|''S''}} रूप का है {{math|''(M, G(M))''}}. यदि हां, {{math|''R''}} स्वीकार करता है {{math|''M''}}. अन्यथा, {{math|''R''}} अस्वीकार करता है {{math|''M''}}. <s>दाईं ओर का आंकड़ा उन मामलों को दर्शाता है जिनमें कोई पूर्व समझौता नहीं था</s>।


कार्यक्रम {{math|''G()''}} का चयन इस प्रकार किया जाता है कि द्वारा सत्यापन {{math|''R''}} अपेक्षाकृत तेज़ है (मिलीसेकंड लेते हुए) और ऐसा है कि गणना द्वारा {{math|''S''}} कुछ धीमा है (कम से कम कई सेकंड शामिल हैं)। इसलिए, {{math|''S''}} भेजने से हतोत्साहित किया जाएगा {{math|''M''}} बिना किसी पूर्व समझौते के कई प्राप्तकर्ताओं के लिए: कंप्यूटिंग के समय और कंप्यूटिंग संसाधनों दोनों के संदर्भ में लागत {{math|''G()''}} कई लाख ई-मेल भेजने का इरादा रखने वाले स्पैमर के लिए बार-बार बहुत निषेधात्मक हो जाएगा।
फ़ंक्शन {{math|''G()''}} का चयन इस प्रकार किया जाता है कि {{math|''R''}} द्वारा सत्यापन अपेक्षाकृत तेज़ (मिलीसेकंड लेते हुए) होता है और ऐसा होता है कि {{math|''S''}} द्वारा गणना द्वारा कुछ धीमी होती है (कम से कम कई सेकंड सम्मिलित होते हैं)। इसलिए, {{math|''S''}} को बिना किसी पूर्व समझौते के कई प्राप्तकर्ताओं को {{math|''M''}} भेजने से निराशजनक किया जाएगा: कंप्यूटिंग के समय और कंप्यूटिंग संसाधनों दोनों के संदर्भ में लागत {{math|''G()''}} स्पैमर के लिए बार-बार बहुत निषेधात्मक हो जाएगी जो कई मिलियन ई-मेल भेजने का इरादा रखता है।


उपरोक्त योजना का उपयोग करने की प्रमुख समस्या यह है कि तेज़ CPU धीमे CPU की तुलना में बहुत तेज़ी से गणना करता है। इसके अलावा, उच्च-अंत कंप्यूटर सिस्टम में परिष्कृत पाइपलाइन और अन्य लाभप्रद विशेषताएं भी होती हैं जो संगणना की सुविधा प्रदान करती हैं। नतीजतन, एक अत्याधुनिक प्रणाली वाला एक स्पैमर शायद ही इस तरह के प्रतिरोध से प्रभावित होगा, जबकि औसत दर्जे की प्रणाली वाला एक विशिष्ट उपयोगकर्ता प्रतिकूल रूप से प्रभावित होगा। यदि एक नए [[ निजी कंप्यूटर ]] पर गणना में कुछ सेकंड लगते हैं, तो पुराने पीसी पर एक मिनट और एक व्यक्तिगत डिजिटल सहायक पर कई मिनट लग सकते हैं, जो पुराने पीसी के उपयोगकर्ताओं के लिए एक परेशानी हो सकती है, लेकिन संभवतः पीडीए के उपयोगकर्ताओं के लिए अस्वीकार्य है। . क्लाइंट सीपीयू की गति में असमानता सीपीयू-बाउंड फ़ंक्शन के आधार पर किसी भी योजना को व्यापक रूप से अपनाने के लिए प्रमुख बाधाओं में से एक है। इसलिए, शोधकर्ता उन कार्यों को खोजने से संबंधित हैं जो अधिकांश कंप्यूटर सिस्टम समान गति से मूल्यांकन करेंगे, ताकि हाई-एंड सिस्टम निम्न-एंड सिस्टम की तुलना में कुछ तेजी से इन कार्यों का मूल्यांकन कर सकें (2-10 गुना तेज, लेकिन 10-100 गुना नहीं तेज) क्योंकि सीपीयू असमानताएं हो सकती हैं। इच्छित अनुप्रयोगों के लिए ये [[अनुपात]] पर्याप्त समतावादी हैं: कार्य दुरुपयोग को हतोत्साहित करने में प्रभावी हैं और सिस्टम की एक विस्तृत श्रृंखला में वैध बातचीत पर निषेधात्मक विलंब नहीं जोड़ते हैं।
उपरोक्त योजना का उपयोग करने की प्रमुख समस्या यह है कि तेज़ सीपीयू धीमे सीपीयू की तुलना में बहुत तेज़ी से गणना करता है। इसके अतिरिक्त, हाई-एंड कंप्यूटर सिस्टम में परिष्कृत पाइपलाइन और अन्य लाभप्रद विशेषताएं भी होती हैं जो संगणना की सुविधा प्रदान करती हैं। परिणाम स्वरुप, एक अत्याधुनिक प्रणाली वाला स्पैमर शायद ही इस तरह के प्रतिरोध से प्रभावित होगा, जबकि औसत दर्जे की प्रणाली वाला विशिष्ट उपयोगकर्ता प्रतिकूल रूप से प्रभावित होता है। यदि नए [[ निजी कंप्यूटर |व्यक्तिगत कंप्यूटर]] पर गणना में कुछ सेकंड लगते हैं, तो पुराने पीसी पर एक मिनट और व्यक्तिगत डिजिटल सहायक पर कई मिनट लग सकते हैं, जो पुराने पीसी के उपयोगकर्ताओं के लिए परेशानी हो सकती है, लेकिन संभवतः पीडीए के उपयोगकर्ताओं के लिए अस्वीकार्य है। क्लाइंट सीपीयू की गति में असमानता सीपीयू-बाउंड फ़ंक्शन के आधार पर किसी भी योजना को व्यापक रूप से अपनाने के लिए प्रमुख बाधाओं में से एक है। इसलिए, शोधकर्ता उन फ़ंक्शन को खोजने से संबंधित हैं जो अधिकांश कंप्यूटर सिस्टम समान गति से मूल्यांकन करेंगे, जिससे कि हाई-एंड सिस्टम निम्न-एंड सिस्टम की तुलना में कुछ तेजी से इन फ़ंक्शन का मूल्यांकन कर सकें (2-10 गुना तेज, लेकिन 10-100 गुना नहीं तेज) क्योंकि सीपीयू असमानताएं हो सकती हैं। ये [[अनुपात]] इच्छित अनुप्रयोगों के लिए पर्याप्त "समतावादी" हैं: कार्य दुरुपयोग को निराशजनक करने में प्रभावी हैं और सिस्टम की विस्तृत श्रृंखला में वैध अन्तःक्रिया पर निषेधात्मक विलंब नहीं जोड़ते हैं।


नया समतावादी दृष्टिकोण स्मृति-बद्ध कार्यों पर भरोसा करना है। जैसा कि पहले कहा गया है, एक मेमोरी-बाउंड फ़ंक्शन एक ऐसा फ़ंक्शन है जिसका गणना समय स्मृति तक पहुँचने में लगने वाले समय पर हावी है। एक मेमोरी-बाउंड फ़ंक्शन स्मृति के एक बड़े क्षेत्र में अप्रत्याशित तरीके से स्थानों तक पहुंचता है, इस तरह से कैश का उपयोग करना प्रभावी नहीं होता है। हाल के वर्षों में, सीपीयू की गति में भारी वृद्धि हुई है, लेकिन तेजी से मुख्य मेमोरी विकसित करने में अपेक्षाकृत कम प्रगति हुई है। चूंकि पिछले पांच वर्षों में निर्मित मशीनों की [[स्मृति विलंबता]] का अनुपात आम तौर पर दो से अधिक नहीं होता है, और लगभग हमेशा चार से कम होता है, मेमोरी-बाउंड फ़ंक्शन निकट भविष्य के लिए अधिकांश प्रणालियों के लिए समतावादी होगा।
नया समतावादी दृष्टिकोण मेमोरी-बाउंड फ़ंक्शन पर भरोसा करना है। जैसा कि पहले कहा गया है, मेमोरी-बाउंड फ़ंक्शन एक ऐसा फ़ंक्शन है जिसका गणना समय मेमोरी तक पहुँचने में लगने वाले समय पर हावी है। मेमोरी-बाउंड फ़ंक्शन मेमोरी के बड़े क्षेत्र में अप्रत्याशित तरीके से स्थानों तक पहुंचता है, इस तरह से कैश का उपयोग करना प्रभावी नहीं होता है। हाल के वर्षों में, सीपीयू की गति में भारी वृद्धि हुई है, लेकिन तेजी से मुख्य मेमोरी विकसित करने में अपेक्षाकृत कम प्रगति हुई है। चूंकि पिछले पांच वर्षों में निर्मित मशीनों की [[स्मृति विलंबता|मेमोरी लेटेंसी]] का अनुपात सामान्यतः दो से अधिक नहीं होता है, और लगभग हमेशा चार से कम होता है, मेमोरी-बाउंड फ़ंक्शन निकट भविष्य के लिए अधिकांश प्रणालियों के लिए समतावादी है।


== यह भी देखें ==
== यह भी देखें ==
*[[कंप्यूटर आर्किटेक्चर]]
*[[कंप्यूटर आर्किटेक्चर]]
* सीपीयू-बाध्य
* सीपीयू-बाउंड
*गतिशील प्रोग्रामिंग
*गतिशील प्रोग्रामिंग
*I/O बाउंड|I/O-बाउंड
*I/O बाउंड
*संस्मरण
*संस्मरण
*[[ मेमोरी-हार्ड फ़ंक्शन ]]
*[[ मेमोरी-हार्ड फ़ंक्शन ]]
* इष्टतम सबस्ट्रक्चर
* इष्टतम सबस्ट्रक्चर
* काम का सबूत
* कार्य का प्रमाण
* पुनरावर्तन
* पुनरावर्तन
* मेमोरी टोंटी
* मेमोरी बाधा


==संदर्भ==
==संदर्भ==
Line 91: Line 89:
*[https://computer.howstuffworks.com/computer-memory.htm How Computer Memory Works]
*[https://computer.howstuffworks.com/computer-memory.htm How Computer Memory Works]
*[https://mat.gsia.cmu.edu/classes/dynamic/dynamic.html Dynamic Programming]
*[https://mat.gsia.cmu.edu/classes/dynamic/dynamic.html Dynamic Programming]
*[http://allendowney.com/cs357spring1998/ass5/node6.html CPU Bound vs. I/O Bound]
*[http://allendowney.com/cs357spring1998/ass5/node6.html सीपीयू Bound vs. I/O Bound]
*[https://www.consumer.ftc.gov/articles/0038-spam Spam – FTC Consumer Information]
*[https://www.consumer.ftc.gov/articles/0038-spam Spam – FTC Consumer Information]
[[Category: एल्गोरिदम का विश्लेषण]] [[Category: स्मृति]] [[Category: स्पैम - विरोधी]]


[[Category: Machine Translated Page]]
[[Category:Created On 11/05/2023]]
[[Category:Created On 11/05/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:एल्गोरिदम का विश्लेषण]]
[[Category:स्पैम - विरोधी]]
[[Category:स्मृति]]

Latest revision as of 13:24, 15 June 2023

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

मेमोरी और संगणना सीमाओं को कभी-कभी एक दूसरे के विरुद्ध विक्रय किया जा सकता है, उदाहरण प्रारंभिक परिणामों को सहेजकर और पुन: उपयोग करके या लुकअप तालिकाओं का उपयोग करके किया जा सकता है।

मेमोरी-बाउंड फ़ंक्शंस और मेमोरी फ़ंक्शंस

मेमोरी-बाउंड फ़ंक्शंस और मेमोरी फ़ंक्शंस संबंधित हैं जिसमें दोनों में व्यापक मेमोरी एक्सेस सम्मिलित है, लेकिन दोनों के बीच एक अंतर सम्मिलित है।

मेमोरी फ़ंक्शंस एक गतिक क्रमादेशन तकनीक का उपयोग करते हैं जिसे मेमोइज़ेशन कहा जाता है जिससे कि पुनरावर्तन की अक्षमता को दूर किया जा सके। यह उप-समस्याओं के समाधान की गणना और भंडारण के सरल विचार पर आधारित है जिससे कि बाद में इष्टतम उप-संरचना को फिर से गणना किए बिना समाधानों का पुन: उपयोग किया जा सके। मेमोइज़ेशन का लाभ उठाने वाला सबसे प्रसिद्ध उदाहरण कलन विधि है जो फाइबोनैचि संख्याओं की गणना करता है। निम्नलिखित स्यूडोकोड पुनरावर्तन और संस्मरण का उपयोग करता है, और रैखिक सीपीयू समय में चलता है:Index.php?title=रैखिक समय

 Fibonacci (n)
 {
     for i = 0 to n-1
         results[i] = -1  // -1 means undefined

     return Fibonacci_Results (results, n);
 }

 Fibonacci_Results (results, n)
 {
     if (results[n] != -1)  // If it has been solved before,
         return results[n]  // look it up.
     if (n == 0)
         val = 0
     else if (n == 1)
         val = 1
     else
         val = Fibonacci_Results(results, n-2 ) + Fibonacci_Results(results, n-1)
     results[n] = val  // Save this result for re-use.

     return val
 }

उपरोक्त की तुलना एल्गोरिदम से करें जो केवल रिकर्सन का उपयोग करता है, और घातीय समय सीपीयू समय में चलता है:

 Recursive_Fibonacci (n)
 {
     if (n == 0)
         return 0
     if (n == 1)
         return 1

     return Recursive_Fibonacci (n-1) + Recursive_Fibonacci (n-2)
 }

जबकि रिकर्सिव-ओनली एल्गोरिथम, रिकर्सन और मेमोइज़ेशन का उपयोग करने वाले एल्गोरिथम की तुलना में सरल और अधिक सुरुचिपूर्ण है, बाद वाले में पूर्व की तुलना में काफी कम काल जटिलता है।

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

स्पैम को रोकने के लिए मेमोरी-बाउंड फ़ंक्शंस का उपयोग करना

मेमोरी-बाउंड फ़ंक्शंस प्रूफ-ऑफ़-वर्क सिस्टम में उपयोगी हो सकते हैं जो स्पैम को रोक सकता है, इंटरनेट पर संक्रामक के अनुपात की समस्या बन गया है।

1992 में, आईबीएम के अनुसंधान वैज्ञानिक सिंथिया डवर्क और मोनी नोर ने क्रिप्टो 1992 में पेपर प्रकाशित किया जिसका शीर्षक प्राइसिंग वाया प्रोसेसिंग या कॉम्बैटिंग जंक मेल था,[1] जो दुरुपयोग करने वालों को स्पैम भेजने से रोकने के लिए सीपीयू-बाउंड फ़ंक्शंस का उपयोग करने की संभावना का सुझाव देता है। यह योजना इस विचार पर आधारित थी कि यदि संसाधनों के दुरुपयोग की लागत नगण्य है तो कंप्यूटर उपयोगकर्ताओं द्वारा संसाधन का दुरुपयोग करने की संभावना अधिक होती है: अंतर्निहित कारण स्पैम इतना बड़ा हो गया है कि ईमेल भेजने से स्पैमर्स के लिए मामूली लागत आती है।

डवर्क और नोर ने प्रस्तावित किया कि महंगे सीपीयू संगणना के रूप में अतिरिक्त लागत को इंजेक्ट करके स्पैमिंग को कम किया जा सकता है: सीपीयू-बाउंड फ़ंक्शंस प्रत्येक संदेश के लिए प्रेषक की मशीन पर सीपीयू संसाधनों का उपभोग करेगा, इस प्रकार भारी मात्रा में स्पैम को एक छोटी सी अवधि में भेजे जाने से रोका जा सकेगा।

दुरुपयोग से बचाने वाली मूल योजना इस प्रकार है:
S को प्रेषक, R को प्राप्तकर्ता और M एक ई-मेल है। यदि R, S से ई-मेल प्राप्त करने के लिए पहले से सहमत हैं , तब M सामान्य तरीके से प्रेषित किया जाता है। अन्यथा, S कुछ फ़ंक्शन G(M) की गणना करता है R को (M, G(M)) भेजता है। यदि हाँ, R, M. को स्वीकार करता है। अन्यथा, R, M को अस्वीकार करता है। दाईं ओर का आंकड़ा उन स्थितियों को दर्शाता है जिनमें कोई पूर्व समझौता नहीं था

फ़ंक्शन G() का चयन इस प्रकार किया जाता है कि R द्वारा सत्यापन अपेक्षाकृत तेज़ (मिलीसेकंड लेते हुए) होता है और ऐसा होता है कि S द्वारा गणना द्वारा कुछ धीमी होती है (कम से कम कई सेकंड सम्मिलित होते हैं)। इसलिए, S को बिना किसी पूर्व समझौते के कई प्राप्तकर्ताओं को M भेजने से निराशजनक किया जाएगा: कंप्यूटिंग के समय और कंप्यूटिंग संसाधनों दोनों के संदर्भ में लागत G() स्पैमर के लिए बार-बार बहुत निषेधात्मक हो जाएगी जो कई मिलियन ई-मेल भेजने का इरादा रखता है।

उपरोक्त योजना का उपयोग करने की प्रमुख समस्या यह है कि तेज़ सीपीयू धीमे सीपीयू की तुलना में बहुत तेज़ी से गणना करता है। इसके अतिरिक्त, हाई-एंड कंप्यूटर सिस्टम में परिष्कृत पाइपलाइन और अन्य लाभप्रद विशेषताएं भी होती हैं जो संगणना की सुविधा प्रदान करती हैं। परिणाम स्वरुप, एक अत्याधुनिक प्रणाली वाला स्पैमर शायद ही इस तरह के प्रतिरोध से प्रभावित होगा, जबकि औसत दर्जे की प्रणाली वाला विशिष्ट उपयोगकर्ता प्रतिकूल रूप से प्रभावित होता है। यदि नए व्यक्तिगत कंप्यूटर पर गणना में कुछ सेकंड लगते हैं, तो पुराने पीसी पर एक मिनट और व्यक्तिगत डिजिटल सहायक पर कई मिनट लग सकते हैं, जो पुराने पीसी के उपयोगकर्ताओं के लिए परेशानी हो सकती है, लेकिन संभवतः पीडीए के उपयोगकर्ताओं के लिए अस्वीकार्य है। क्लाइंट सीपीयू की गति में असमानता सीपीयू-बाउंड फ़ंक्शन के आधार पर किसी भी योजना को व्यापक रूप से अपनाने के लिए प्रमुख बाधाओं में से एक है। इसलिए, शोधकर्ता उन फ़ंक्शन को खोजने से संबंधित हैं जो अधिकांश कंप्यूटर सिस्टम समान गति से मूल्यांकन करेंगे, जिससे कि हाई-एंड सिस्टम निम्न-एंड सिस्टम की तुलना में कुछ तेजी से इन फ़ंक्शन का मूल्यांकन कर सकें (2-10 गुना तेज, लेकिन 10-100 गुना नहीं तेज) क्योंकि सीपीयू असमानताएं हो सकती हैं। ये अनुपात इच्छित अनुप्रयोगों के लिए पर्याप्त "समतावादी" हैं: कार्य दुरुपयोग को निराशजनक करने में प्रभावी हैं और सिस्टम की विस्तृत श्रृंखला में वैध अन्तःक्रिया पर निषेधात्मक विलंब नहीं जोड़ते हैं।

नया समतावादी दृष्टिकोण मेमोरी-बाउंड फ़ंक्शन पर भरोसा करना है। जैसा कि पहले कहा गया है, मेमोरी-बाउंड फ़ंक्शन एक ऐसा फ़ंक्शन है जिसका गणना समय मेमोरी तक पहुँचने में लगने वाले समय पर हावी है। मेमोरी-बाउंड फ़ंक्शन मेमोरी के बड़े क्षेत्र में अप्रत्याशित तरीके से स्थानों तक पहुंचता है, इस तरह से कैश का उपयोग करना प्रभावी नहीं होता है। हाल के वर्षों में, सीपीयू की गति में भारी वृद्धि हुई है, लेकिन तेजी से मुख्य मेमोरी विकसित करने में अपेक्षाकृत कम प्रगति हुई है। चूंकि पिछले पांच वर्षों में निर्मित मशीनों की मेमोरी लेटेंसी का अनुपात सामान्यतः दो से अधिक नहीं होता है, और लगभग हमेशा चार से कम होता है, मेमोरी-बाउंड फ़ंक्शन निकट भविष्य के लिए अधिकांश प्रणालियों के लिए समतावादी है।

यह भी देखें

संदर्भ

  1. Dwork, Cynthia; Naor, Moni (1992). "Pricing via Processing or Combatting Junk Mail". Advances in Cryptology – CRYPTO 1992, 12th Annual International Cryptology Conference, Santa Barbara, California, USA, August 16-20, 1992, Proceedings: 139–147. doi:10.1007/3-540-48071-4_10. (updated version of same)


बाहरी संबंध