समवर्ती (कंप्यूटर विज्ञान)
कंप्यूटर विज्ञान में संगामिति एक कंप्यूटर प्रोग्राम एल्गोरिद्म के विभिन्न भागों या इकाइयों की क्षमता है या परिणाम को प्रभावित किए बिना निष्पादन (कंप्यूटिंग) आउट-ऑफ-क्रम या आंशिक क्रम में समस्या को हल करने की क्षमता है। यह समवर्ती इकाइयों के समानांतर कंप्यूटिंग निष्पादन की अनुमति देता है जो मल्टी -प्रोसेसर और मल्टी-कोर प्रोसेसर मल्टी-कोर प्रणाली में निष्पादन की समग्र गति में अधिक सुधार कर सकता है। अधिक तकनीकी शब्दों में, संगामिति एक कार्यक्रम, कलन विधि, या समस्या के अपघटन (कंप्यूटर विज्ञान) को आदेश-स्वतंत्र या आंशिक रूप से आदेशित घटकों या गणना की इकाइयों में संदर्भित करता है।[1]
रोब पाइक के अनुसार संगामिति स्वतंत्र रूप से क्रियान्वित संगणनाओं की संरचना है[2] और संगामिति समांतरता नहीं है संगामिति बहुत सारी चीजों को एक साथ हल के बारे में है किंतु समानता एक साथ बहुत सी चीजों को करने के बारे में है। संगामिति संरचना के बारे में है समानता निष्पादन के बारे में है संगामिति एक समस्या को हल करने के लिए एक समाधान की संरचना करने का एक विधि प्रदान करती है जो (किंतु जरूरी नहीं) समानांतर हो सकती है।[3]
पेट्री नेट, प्रक्रिया गणना समानांतर रैंडम-एक्सेस मशीन मॉडल अभिनेता मॉडल और रियो समन्वय भाषा सहित सामान्य समवर्ती संगणना के लिए कई गणितीय मॉडल विकसित किए गए हैं।
इतिहास
जैसा कि लेस्ली लामपोर्ट (2015) ने नोट किया है "जबकि समवर्ती कार्यक्रम के निष्पादन पर वर्षों से विचार किया जा रहा था, संगामिति का कंप्यूटर विज्ञान एडजर डिजस्ट्रा के सेमिनल 1965 के पेपर के साथ प्रारंभ हुआ जिसने पारस्परिक बहिष्कार की समस्या प्रस्तुत की। ... आने वाले दशकों में ब्याज की भारी वृद्धि देखी गई है। संगामिति में - विशेष रूप से वितरित प्रणालियों में क्षेत्र की उत्पत्ति को देखते हुए एडजर डिजस्ट्रा द्वारा निभाई गई मौलिक भूमिका क्या है"।[4]
उद्देश्य
क्योंकि एक समवर्ती प्रणाली में संगणनाएँ निष्पादित होने के समय एक दूसरे के साथ परस्पर क्रिया कर सकती हैं प्रणाली में संभावित निष्पादन पथों की संख्या बहुत बड़ी हो सकती है और परिणामी परिणाम समवर्ती संगणना में अनिश्चितता हो सकता है। साझा संसाधन (कंप्यूटर विज्ञान) का समवर्ती उपयोग अनिश्चितता का एक स्रोत हो सकता है जो गतिरोध और संसाधन अप्राप्ति जैसे उद्देश्य की ओर ले जाता है।[5]
समवर्ती प्रणालियों के डिजाइन में अधिकांशतः विलंबता (इंजीनियरिंग) को कम करने और थ्रूपुट को अधिकतम करने के लिए उनके निष्पादन डेटा रूपांतरण मेमोरी आवंटन और निष्पादन शेड्यूलिंग को समन्वयित करने के लिए विश्वसनीय विधि खोजने की आवश्यकता होती है।[6]
सिद्धांत
समवर्ती सिद्धांत सैद्धांतिक कंप्यूटर विज्ञान में अनुसंधान का एक सक्रिय क्षेत्र रहा है। पहले प्रस्तावों में से एक 1960 के दशक की प्रारंभ में पेट्री नेट पर कार्ल एडम पेट्री का प्रारंभिक कार्य था। इसके बाद के वर्षों में समरूपता के बारे में मॉडलिंग और तर्क के लिए विभिन्न प्रकार की औपचारिकताओं का विकास किया गया है।
मॉडल
मॉडलिंग और समवर्ती प्रणालियों को समझने के लिए कई औपचारिकताएँ विकसित की गई हैं, जिनमें सम्मिलित हैं:[7]
- समानांतर रैंडम-एक्सेस मशीन[8]
- अभिनेता मॉडल
- कम्प्यूटेशनल ब्रिजिंग मॉडल जैसे बल्क सिंक्रोनस पैरेलल (बीएसपी) मॉडल
- पेट्री जाल
- प्रक्रिया गणना
- संचार प्रणालियों की गणना (सीसीएस)
- संचार अनुक्रमिक प्रक्रियाओं (सीएसपी) मॉडल
- π--कैलकुलस
- टपल स्पेस, जैसे, लिंडा (समन्वय भाषा)
- स्कोप (सॉफ्टवेयर) | सरल समवर्ती वस्तु-उन्मुख प्रोग्रामिंग (स्कोप)
- रियो समन्वय भाषा
- मोनोइड्स ट्रेस करें
समवर्ती के इन मॉडलों में से कुछ मुख्य रूप से तर्क और विनिर्देश का समर्थन करने के लिए अभिप्रेत हैं जबकि अन्य का उपयोग संपूर्ण विकास चक्र के माध्यम से किया जा सकता है जिसमें समवर्ती प्रणालियों के डिजाइन कार्यान्वयन प्रमाण परीक्षण और अनुकरण सम्मिलित हैं। इनमें से कुछ संदेश देना पर आधारित हैं जबकि अन्य में संगामिति के लिए अलग-अलग तंत्र हैं।
संगामिति के विभिन्न मॉडलों के प्रसार ने कुछ शोधकर्ताओं को इन विभिन्न सैद्धांतिक मॉडलों को एकीकृत करने के विधि विकसित करने के लिए प्रेरित किया है। उदाहरण के लिए, ली और सांगियोवान्नी-विन्सेंटेली ने प्रदर्शित किया है कि एक तथाकथित टैग-सिग्नल मॉडल का उपयोग विभिन्न प्रकार के संगामिति के विभिन्न मॉडलों के सांकेतिक शब्दार्थ को परिभाषित करने के लिए एक सामान्य फ्रेमवर्क प्रदान करने के लिए किया जा सकता है,[9] जबकि नीलसन, सैसोन और विंकेल ने प्रदर्शित किया है कि विभिन्न मॉडलों की समान एकीकृत समझ प्रदान करने के लिए श्रेणी सिद्धांत का उपयोग किया जा सकता है।[10]
अभिनेता मॉडल में समवर्ती प्रतिनिधित्व प्रमेय समवर्ती प्रणालियों का प्रतिनिधित्व करने के लिए अधिक सामान्य विधि प्रदान करता है जो इस अर्थ में बंद हैं कि वे बाहर से संचार प्राप्त नहीं करते हैं। (अन्य समवर्ती प्रणालियाँ, उदाहरण के लिए, प्रक्रिया गणना को दो-चरण प्रतिबद्ध प्रोटोकॉल का उपयोग करके अभिनेता मॉडल में तैयार किया जा सकता है।[11]) एक बंद प्रणाली S द्वारा निरूपित गणितीय संकेत नामक प्रारंभिक व्यवहार से तेजी से उत्तम अनुमानों का निर्माण किया जाता है जिसे ⊥S का उपयोग करके कहा जाता है S के लिए एक संकेतन (अर्थ ) बनाने के लिए कार्य progressionS का अनुमान लगाने वाला व्यवहार इस प्रकार है::[12]
- DenoteS ≡ ⊔i∈ω progressionSi(⊥S)
इस प्रकार से, S को उसके सभी संभावित व्यवहारों के संदर्भ में गणितीय रूप से चित्रित किया जा सकता है।
तर्क
विभिन्न प्रकार के लौकिक तर्क[13] समवर्ती प्रणालियों के कारण में सहायता के लिए उपयोग किया जा सकता है। इनमें से कुछ लॉजिक्स जैसे लीनियर क्रियाओं का अस्थायी तर्क ट्री लॉजिक, स्थिति के अनुक्रमों के बारे में अभिकथन करने की अनुमति देते हैं जो एक समवर्ती प्रणाली से गुजर सकते हैं। अन्य जैसे एक्शन कम्प्यूटेशनल ट्री लॉजिक, हेनेसी-मिलनर लॉजिक, और लेस्ली लैमपोर्ट, लैमपोर्ट के एक्शन के टेम्पोरल लॉजिक क्रियाओं के अनुक्रम (स्थिति में परिवर्तन) से अपने दावे का निर्माण करते हैं। इन लॉजिक्स का मुख्य अनुप्रयोग समवर्ती प्रणालियों के लिए विशिष्टताओं को लिखने में है।[5]
अभ्यास
समवर्ती प्रोग्रामिंग में समवर्ती प्रणालियों को प्रयुक्त करने के लिए उपयोग की जाने वाली प्रोग्रामिंग भाषाएं और एल्गोरिदम सम्मिलित हैं। समानांतर प्रोग्रामिंग की तुलना में समवर्ती प्रोग्रामिंग को सामान्यतः अधिक सामान्य माना जाता है क्योंकि इसमें संचार और बातचीत के इच्छानुसार और गतिशील प्रतिरूप सम्मिलित हो सकते हैं, जबकि समानांतर प्रणाली में सामान्यतः एक पूर्वनिर्धारित और अच्छी तरह से संरचित संचार प्रतिरूप होता है। समवर्ती प्रोग्रामिंग के मूल लक्ष्यों में शुद्धता, प्रदर्शन और शसक्ति सम्मिलित है। ऑपरेटिंग प्रणाली और डेटाबेस प्रबंधन प्रणाली जैसे समवर्ती प्रणाली को सामान्यतः अनिश्चित काल तक संचालित करने के लिए डिज़ाइन किया गया है, जिसमें विफलता से स्वत: पुनर्प्राप्ति सम्मिलित है और अप्रत्याशित रूप से समाप्त नहीं होती है (संगामिति नियंत्रण देखें)। कुछ समवर्ती प्रणालियाँ पारदर्शी संगामिति का एक रूप प्रयुक्त करती हैं जिसमें समवर्ती कम्प्यूटेशनल संस्थाएँ एकल संसाधन के लिए प्रतिस्पर्धा और साझा कर सकती हैं किंतु इस प्रतियोगिता और साझाकरण की जटिलताओं को प्रोग्रामर से परिरक्षित किया जाता है।
क्योंकि वे साझा संसाधनों का उपयोग करते हैं, सामान्यतः समवर्ती प्रणालियों को उन संसाधनों तक पहुंच को नियंत्रित करने के लिए उनके कार्यान्वयन (अधिकांशतः अंतर्निहित हार्डवेयर में) में किसी प्रकार के आर्बिटर (इलेक्ट्रॉनिक्स) को सम्मिलित करने की आवश्यकता होती है। मध्यस्थों का उपयोग समवर्ती संगणना में अनिश्चितता की संभावना का परिचय देता है जिसमें शुद्धता और प्रदर्शन सहित अभ्यास के लिए प्रमुख निहितार्थ हैं। उदाहरण के लिए मध्यस्थता असीमित गैर-निर्धारणवाद का परिचय देती है जो मॉडल जांच के साथ उद्देश्य को उठाती है क्योंकि यह स्थिति अंतरिक्ष में विस्फोट का कारण बनती है और यहां तक कि मॉडल को अनंत संख्या में स्थिति का कारण बन सकती है।
कुछ समवर्ती प्रोग्रामिंग मॉडल में कोप्रोसेसेस और नियतात्मक संगामिति सम्मिलित हैं। इन मॉडलों में नियंत्रण के सूत्र स्पष्ट रूप से या तो प्रणाली या किसी अन्य प्रक्रिया के लिए अपना समय देते हैं।
यह भी देखें
- सीएचयू स्थान
- क्लाइंट-सर्वर नेटवर्क नोड्स
- क्लोजर
- क्लस्टर कंप्यूटिंग नोड्स
- समरूपता नियंत्रण
- समवर्ती कंप्यूटिंग
- समवर्ती वस्तु-उन्मुख प्रोग्रामिंग
- समवर्ती पैटर्न
- वितरित प्रक्रियाओं का निर्माण और विश्लेषण (सीएडीपी)
- डी (प्रोग्रामिंग भाषा)
- वितरित अभिकलन
- अलिक्सिर (प्रोग्रामिंग भाषा)
- एरलांग (प्रोग्रामिंग भाषा)
- जाओ (प्रोग्रामिंग भाषा)
- गॉर्डन पास्क
- समवर्ती सिद्धांत पर अंतर्राष्ट्रीय सम्मेलन (कॉनसुर)
- ओपनएमपी
- समानांतर कंप्यूटिंग
- विभाजित वैश्विक पता स्थान
- प्रक्रिया (कंप्यूटिंग)
- टॉलेमी परियोजना
- रस्ट (प्रोग्रामिंग भाषा)
- शेफ़ (गणित)
- थ्रेड (कंप्यूटिंग)
- X10 (प्रोग्रामिंग भाषा)
- संरचित संगामिति
संदर्भ
- ↑ Lamport, Leslie (July 1978). "वितरित प्रणाली में समय, घड़ियां और घटनाओं का क्रम" (PDF). Communications of the ACM. 21 (7): 558–565. doi:10.1145/359545.359563. S2CID 215822405. Retrieved 4 February 2016.
- ↑ "संगामिति पैटर्न जाओ". talks.golang.org. Retrieved 2021-04-08.
- ↑ "संगामिति समानता नहीं है". talks.golang.org. Retrieved 2021-04-08.
- ↑ Lamport, Leslie. "Turing Lecture: The Computer Science of Concurrency: The Early Years (Communications of the ACM, Vol. 58 No. 6, June 2015)". ACM. Retrieved 22 Mar 2017.
- ↑ 5.0 5.1 Cleaveland, Rance; Scott Smolka (December 1996). "समवर्ती अनुसंधान में रणनीतिक दिशाएँ". ACM Computing Surveys. 28 (4): 607. doi:10.1145/242223.242252. S2CID 13264261.
- ↑ Campbell, Colin; Johnson, Ralph; Miller, Ade; Toub, Stephen (August 2010). Microsoft .NET के साथ समानांतर प्रोग्रामिंग. Microsoft Press. ISBN 978-0-7356-5159-3.
- ↑ Filman, Robert; Daniel Friedman (1984). समन्वित कम्प्यूटिंग - वितरित सॉफ्टवेयर के लिए उपकरण और तकनीक. McGraw-Hill. ISBN 978-0-07-022439-1.
- ↑ Keller, Jörg; Christoph Keßler; Jesper Träff (2001). व्यावहारिक PRAM प्रोग्रामिंग. John Wiley and Sons.
- ↑ Lee, Edward; Alberto Sangiovanni-Vincentelli (December 1998). "संगणना के मॉडल की तुलना के लिए एक रूपरेखा" (PDF). IEEE Transactions on CAD. 17 (12): 1217–1229. doi:10.1109/43.736561.
- ↑ Mogens Nielsen; Vladimiro Sassone; Glynn Winskel (1993). "संगामिति के मॉडल के बीच संबंध". REX School/Symposium.
- ↑ Frederick Knabe. A Distributed Protocol for Channel-Based Communication with Choice PARLE 1992.
- ↑ William Clinger (June 1981). "अभिनेता शब्दार्थ की नींव". Mathematics Doctoral Dissertation. MIT. hdl:1721.1/6935.
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ Roscoe, Colin (2001). प्रक्रियाओं के मोडल और टेम्पोरल गुण. Springer. ISBN 978-0-387-98717-0.
अग्रिम पठन
- Lynch, Nancy A. (1996). Distributed Algorithms. Morgan Kaufmann. ISBN 978-1-55860-348-6.
- Tanenbaum, Andrew S.; Van Steen, Maarten (2002). Distributed Systems: Principles and Paradigms. Prentice Hall. ISBN 978-0-13-088893-8.
- Kurki-Suonio, Reino (2005). A Practical Theory of Reactive Systems. Springer. ISBN 978-3-540-23342-8.
- Garg, Vijay K. (2002). Elements of Distributed Computing. Wiley-IEEE Press. ISBN 978-0-471-03600-5.
- Magee, Jeff; Kramer, Jeff (2006). Concurrency: State Models and Java Programming. Wiley. ISBN 978-0-470-09355-9.
- Distefano, S., & Bruneo, D. (2015). Quantitative assessments of distributed systems: Methodologies and techniques (1st ed.). Somerset: John Wiley & Sons Inc.ISBN 9781119131144
- Bhattacharyya, S. S. (2013;2014;). Handbook of signal processing systems (Second;2;2nd 2013; ed.). New York, NY: Springer.10.1007/978-1-4614-6859-2 ISBN 9781461468592
- Wolter, K. (2012;2014;). Resilience assessment and evaluation of computing systems (1. Aufl.;1; ed.). London;Berlin;: Springer. ISBN 9783642290329