सट्टा निष्पादन

From alpha
Jump to navigation Jump to search

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

इसका उद्देश्य अतिरिक्त संसाधन (कंप्यूटर विज्ञान) उपलब्ध होने पर अधिक समवर्ती (कंप्यूटर विज्ञान) प्रदान करना है। इस दृष्टिकोण को विभिन्न क्षेत्रों में नियोजित किया जाता है, जिसमें निर्देश पाइपलाइन CPU में शाखा भविष्यवक्ता, मूल्य इलाके का शोषण करने के लिए मूल्य भविष्यवाणी, निर्देश प्रीफ़ेच और फाइल सिस्टम को प्रीफ़ेच करना, और रिलेशनल डेटाबेस प्रबंधन प्रणाली में आशावादी समवर्ती नियंत्रण शामिल है।[1][2][3] सट्टा मल्टीथ्रेडिंग सट्टा निष्पादन का एक विशेष मामला है।

अवलोकन

आधुनिक निर्देश पाइपलाइन माइक्रोप्रोसेसर उन योजनाओं का उपयोग करके सशर्त शाखा निर्देशों की लागत को कम करने के लिए सट्टा निष्पादन का उपयोग करते हैं जो शाखा निष्पादन के इतिहास के आधार पर किसी कार्यक्रम के निष्पादन पथ की भविष्यवाणी करते हैं।[2]कंप्यूटर संसाधनों के प्रदर्शन और उपयोग को बेहतर बनाने के लिए, निर्देशों को ऐसे समय में निर्धारित किया जा सकता है जब यह अभी तक निर्धारित नहीं किया गया है कि निर्देशों को शाखा भविष्यवक्ता से पहले निष्पादित करने की आवश्यकता होगी।[4]

वेरिएंट

सट्टा गणना एक संबंधित पूर्व अवधारणा थी।[5]


उत्सुक निष्पादन

उत्सुक निष्पादन सट्टा निष्पादन का एक रूप है जहां सशर्त शाखा के दोनों पक्षों को निष्पादित किया जाता है; हालाँकि, परिणाम तभी प्रतिबद्ध होते हैं जब विधेय सत्य हो। असीमित संसाधनों के साथ, उत्सुक निष्पादन (जिसे ओरेकल निष्पादन के रूप में भी जाना जाता है) सिद्धांत रूप में सही शाखा भविष्यवाणी के समान प्रदर्शन प्रदान करेगा। सीमित संसाधनों के साथ, उत्सुक निष्पादन को सावधानीपूर्वक नियोजित किया जाना चाहिए, क्योंकि शाखा के प्रत्येक स्तर पर उत्सुकता से निष्पादित होने के साथ आवश्यक संसाधनों की संख्या में तेजी से वृद्धि होती है।[6]

भविष्यवाणी निष्पादन

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


रनहेड

Page 'Runahead' not found

संबंधित अवधारणाएँ

आलसी निष्पादन

आलसी निष्पादन उत्सुक निष्पादन के विपरीत है, और इसमें अटकलें शामिल नहीं हैं। हास्केल (प्रोग्रामिंग भाषा), एक आलसी भाषा, के कार्यान्वयन में सट्टा निष्पादन का समावेश एक वर्तमान शोध विषय है। उत्सुक हास्केल , भाषा का एक प्रकार, सट्टा निष्पादन के विचार के आसपास डिज़ाइन किया गया है। 2003 की एक पीएचडी थीसिस ने ग्लासगो हास्केल कंपाइलर को एक गर्भपात तंत्र के साथ एक प्रकार के सट्टा निष्पादन का समर्थन करने के लिए तैयार किया, ताकि गलत विकल्प के मामले में आशावादी निष्पादन कहा जा सके।[8] इसे बहुत जटिल माना गया।[9]


सुरक्षा कमजोरियाँ

2017 से शुरू होकर, सामान्य प्रोसेसर आर्किटेक्चर पर सट्टा निष्पादन के कार्यान्वयन में भेद्यता (कंप्यूटिंग) की एक श्रृंखला पाई गई, जिसने प्रभावी रूप से विशेषाधिकार (कंप्यूटिंग) के उन्नयन को सक्षम किया।

इसमे शामिल है:

यह भी देखें

संदर्भ

  1. Lampson, Butler (2006). "कंप्यूटर सिस्टम में आलसी और सट्टा निष्पादन". In Momenzadeh, Mariam; Shvartsman, Alexander A. (eds.). Principles of Distributed Systems. 10th International Conference on Principles of Distributed Systems. Lecture Notes in Computer Science. Vol. 4305. Bordeaux, France: Springer. pp. 1–2. doi:10.1007/11945529_1. ISBN 978-3-540-49991-6.
  2. 2.0 2.1 Raghavan, Prabhakar; Shachnai, Hadas; Yaniv, Mira (1998). "Dynamic schemes for speculative execution of code". Proceedings of the Sixth International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems. IEEE. pp. 309–314. doi:10.1109/MASCOT.1998.693711. Retrieved 18 January 2011.
  3. Kung, H. T.; John T. Robinson (June 1981). "On optimistic methods for concurrency control" (PDF). ACM Trans. Database Syst. Vol. 6. Archived (PDF) from the original on August 31, 2019.
  4. Bernd Krieg-Brückner (1992). ईएसओपी '92: प्रोग्रामिंग पर चौथा यूरोपीय संगोष्ठी, रेनेस, फ्रांस, 26-28 फरवरी, 1992: कार्यवाही. Springer. pp. 56–57. ISBN 978-3-540-55253-6. Retrieved 18 January 2011.
  5. Randy B. Osborne (1990-03-21). "Speculative Computation in Multilisp". Parallel Lisp: Languages and Systems (PS). Lecture Notes in Computer Science. Vol. 441. Digital Equipment Corporation Research Lab. pp. 103–137. doi:10.1007/BFb0024152. ISBN 3-540-52782-6. Archived from the original on 2017-02-07. Retrieved 2018-01-26.
  6. Jurij Šilc; Borut Robič; Theo Ungerer (1999). प्रोसेसर आर्किटेक्चर: डेटाफ्लो से सुपरस्केलर और उससे आगे तक. Springer. pp. 148–150. ISBN 978-3-540-64798-0. Retrieved 21 January 2011.
  7. Mark D., Hill; Norman P., Jouppi; Gourindar S., Sohi (2000). कंप्यूटर आर्किटेक्चर में रीडिंग. Morgan Kaufman. ISBN 9781558605398. Retrieved 5 January 2018.
  8. Jones, Simon Peyton; Ennals, Robert (1 August 2003). "Optimistic Evaluation: a fast evaluation strategy for non-strict programs". Retrieved 15 May 2019 – via www.microsoft.com. {{cite journal}}: Cite journal requires |journal= (help)
  9. "[Haskell] Optimistic Evaluation?". 31 August 2006.