समवर्ती (कंप्यूटर विज्ञान)

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

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

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

सिद्धांत
समवर्ती सिद्धांत सैद्धांतिक कंप्यूटर विज्ञान में अनुसंधान का एक सक्रिय क्षेत्र रहा है। पहले प्रस्तावों में से एक 1960 के दशक की शुरुआत में पेट्री नेट पर कार्ल एडम पेट्री का प्रारंभिक कार्य था। इसके बाद के वर्षों में, समरूपता के बारे में मॉडलिंग और तर्क के लिए विभिन्न प्रकार की औपचारिकताओं का विकास किया गया है।

मॉडल
मॉडलिंग और समवर्ती प्रणालियों को समझने के लिए कई औपचारिकताएँ विकसित की गई हैं, जिनमें शामिल हैं:
 * समानांतर रैंडम-एक्सेस मशीन
 * अभिनेता मॉडल
 * कम्प्यूटेशनल ब्रिजिंग मॉडल जैसे थोक तुल्यकालिक समानांतर (बीएसपी) मॉडल
 * पेट्री जाल
 * प्रक्रिया गणना
 * संचार प्रणालियों की गणना (सीसीएस)
 * संचार अनुक्रमिक प्रक्रियाओं (सीएसपी) मॉडल
 * π-पथरी
 * टपल स्पेस, जैसे, लिंडा (समन्वय भाषा)
 * SCOOP (सॉफ्टवेयर) | सरल समवर्ती वस्तु-उन्मुख प्रोग्रामिंग (SCOOP)
 * Reo समन्वय भाषा
 * मोनोइड्स ट्रेस करें

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

संगामिति के विभिन्न मॉडलों के प्रसार ने कुछ शोधकर्ताओं को इन विभिन्न सैद्धांतिक मॉडलों को एकीकृत करने के तरीके विकसित करने के लिए प्रेरित किया है। उदाहरण के लिए, ली और सांगियोवान्नी-विन्सेंटेली ने प्रदर्शित किया है कि एक तथाकथित टैग-सिग्नल मॉडल का उपयोग विभिन्न प्रकार के संगामिति के विभिन्न मॉडलों के सांकेतिक शब्दार्थ को परिभाषित करने के लिए एक सामान्य ढांचा प्रदान करने के लिए किया जा सकता है, जबकि नीलसन, सैसोन और विंकेल ने प्रदर्शित किया है कि विभिन्न मॉडलों की समान एकीकृत समझ प्रदान करने के लिए श्रेणी सिद्धांत का उपयोग किया जा सकता है। अभिनेता मॉडल में समवर्ती प्रतिनिधित्व प्रमेय समवर्ती प्रणालियों का प्रतिनिधित्व करने के लिए काफी सामान्य तरीका प्रदान करता है जो इस अर्थ में बंद हैं कि वे बाहर से संचार प्राप्त नहीं करते हैं। (अन्य समवर्ती प्रणालियाँ, उदाहरण के लिए, प्रक्रिया गणना को दो-चरण प्रतिबद्ध प्रोटोकॉल का उपयोग करके अभिनेता मॉडल में तैयार किया जा सकता है। ) एक बंद प्रणाली द्वारा निरूपित गणितीय संकेत S नामक प्रारंभिक व्यवहार से तेजी से बेहतर अनुमानों का निर्माण किया जाता है ⊥S व्यवहार अनुमानित फ़ंक्शन का उपयोग करना progressionS के लिए एक अर्थ (अर्थ) का निर्माण करने के लिए S निम्नलिखित नुसार:
 * DenoteS ≡ ⊔i∈ω progressionSi(⊥S)

इस प्रकार से, S को उसके सभी संभावित व्यवहारों के संदर्भ में गणितीय रूप से चित्रित किया जा सकता है।

तर्क
विभिन्न प्रकार के लौकिक तर्क समवर्ती प्रणालियों के कारण में मदद के लिए इस्तेमाल किया जा सकता है। इनमें से कुछ लॉजिक्स, जैसे लीनियर क्रियाओं का अस्थायी तर्क ट्री लॉजिक, राज्यों के अनुक्रमों के बारे में अभिकथन करने की अनुमति देते हैं जो एक समवर्ती प्रणाली से गुजर सकते हैं। अन्य, जैसे एक्शन कम्प्यूटेशनल ट्री लॉजिक, हेनेसी-मिलनर लॉजिक, और लेस्ली लैमपोर्ट | लैमपोर्ट के एक्शन के टेम्पोरल लॉजिक, क्रियाओं के अनुक्रम (राज्य में परिवर्तन) से अपने दावे का निर्माण करते हैं। इन लॉजिक्स का मुख्य अनुप्रयोग समवर्ती प्रणालियों के लिए विशिष्टताओं को लिखने में है।

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

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

कुछ समवर्ती प्रोग्रामिंग मॉडल में coprocess ेस और नियतात्मक संगामिति शामिल हैं। इन मॉडलों में, नियंत्रण के धागे स्पष्ट रूप से सिस्टम या किसी अन्य प्रक्रिया के लिए अपने समय-समय पर  उपज (मल्टीथ्रेडिंग)  करते हैं।

यह भी देखें

 * चू स्थान
 * क्लाइंट-सर्वर नेटवर्क नोड्स
 * क्लोजर
 * क्लस्टर कंप्यूटिंग नोड्स
 * समरूपता नियंत्रण
 * समवर्ती कंप्यूटिंग
 * समवर्ती वस्तु-उन्मुख प्रोग्रामिंग
 * समवर्ती पैटर्न
 * वितरित प्रक्रियाओं का निर्माण और विश्लेषण (सीएडीपी)
 * डी (प्रोग्रामिंग भाषा)
 * वितरित अभिकलन
 * अमृत (प्रोग्रामिंग भाषा)
 * एरलांग (प्रोग्रामिंग भाषा)
 * जाओ (प्रोग्रामिंग भाषा)
 * गॉर्डन पास्क
 * समवर्ती सिद्धांत पर अंतर्राष्ट्रीय सम्मेलन (CONCUR)
 * ओपनएमपी
 * समानांतर कंप्यूटिंग
 * विभाजित वैश्विक पता स्थान
 * प्रक्रिया (कंप्यूटिंग)
 * टॉलेमी परियोजना
 * जंग (प्रोग्रामिंग भाषा)
 * शेफ़ (गणित)
 * थ्रेड (कंप्यूटिंग)
 * X10 (प्रोग्रामिंग भाषा)
 * संरचित संगामिति

अग्रिम पठन

 * 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
 * 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
 * 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

बाहरी संबंध

 * Process Algebra Diary - Prof. Luca Aceto's blog on Concurrency Theory
 * Concurrent Systems at The WWW Virtual Library
 * Concurrency patterns presentation given at scaleconf