क्या ऐसा कुछ है जो मल्टी-कोर सीपीयू पर होना चाहिए?


45

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

क्या ऐसा कुछ है जो मल्टी-कोर प्रोसेसर पर होना चाहिए?

मान लें कि विकास और चलने दोनों के लिए अनंत समय है।


8
हालांकि नीचे दिए गए जवाब बड़े पैमाने पर "नहीं" प्रतीत होते हैं, ऐतिहासिक रूप से ऐसी प्रणालियां हैं जो कुछ कार्यों को संभालने वाले सह-प्रोसेसर के बिना शाब्दिक रूप से काम नहीं कर सकती थीं। एक मजबूत उदाहरण मुझे पता है कि निनटेंडो डीएस है, जिसमें एक 67 मेगाहर्ट्ज एआरएम 9 सीपीयू और एक 33 मेगाहर्ट्ज एआरएम 7 सीपीयू (जीबीए गेम खेलने के दौरान बैक-कॉमेटर्स के लिए भी उपयोग किया जाता है) शामिल हैं। डीएस गेम के लिए, ARM7 ऑडियो और वाई-फाई संचार को खेलता है क्योंकि ARM9 सीधे स्क्रीन पर कुछ भी नोट नहीं कर सकता है और न ही ऑडियो को साउंड चिप में खिला सकता है। तो जैसा @jmite बताता है कि "किन बाधाओं के तहत", गति की कमी से कई सीपीयू फिर से आ सकते हैं।
स्लिप डी। थॉम्पसन

10
मेरी नौकरी में हम कम-विलंबता ऑडियो प्रसंस्करण करने के लिए मल्टीकोर एक्सॉन और एक्सनोमई वास्तविक समय लिनक्स एक्सटेंशन का उपयोग करते हैं। हमारे पास तीन-चरण की ऑडियो प्रोसेसिंग पाइपलाइन है, और प्रत्येक चरण को अपना स्वयं का समर्पित कोर मिलता है, जिसका उपयोग ~ 70% चक्रों में किया जाता है। गैर-वास्तविक समय के कार्यों को चौथे कोर का उपयोग करने के लिए मिलता है, और जो भी चक्र पहले तीन पर बचे हुए हैं। यह केवल सिंगल-कोर सीपीयू पर संभव होगा यदि वह सिंगल कोर वर्तमान 4-कोर सीपीयू पर कोर की तुलना में 3+ गुना तेज था; यह देखते हुए कि वर्तमान CPU 2GHz पर चलता है, जिसे प्राप्त करना मुश्किल हो सकता है।
जेरेमी फ्रेज़र

19
सिंगल-कोर सीपीयू पर सॉफ्टवेयर मल्टी-कोर सीपीयू का अनुकरण कर सकता है। अंतर लगभग पूरी तरह से गति है।
user253751 7

24
मल्टी कोर सिस्टम पर एक चीज जो होनी चाहिए वह मल्टीथ्रेड सॉफ्टवेयर का परीक्षण है। क्योंकि कुछ दोष एकल-कोर प्रणाली पर (लगभग) कभी नहीं होंगे। मुझे यकीन नहीं है कि एक उत्तर के रूप में अर्हता प्राप्त करता है, हालांकि ...
nikie

13
@ मिनी एक सिंगल-कोर सिस्टम मेमोरी ऑर्डरिंग और बासी कैश का भी अनुकरण कर सकता है - लेकिन मुझे लगता है कि यह बेहद अक्षम (10 × मंदी की तरह) होगा
नायुकी

जवाबों:


47

यदि आप रनिंग टाइम की परवाह नहीं करते हैं, तो आप मल्टी-कोर मशीन पर कुछ भी कर सकते हैं, आप सिंगल-कोर मशीन पर कर सकते हैं। एक मल्टी-कोर मशीन कुछ प्रकार की गणनाओं को गति देने का एक तरीका है।

TnTn


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

6
@ पॉलए। क्लेटन मेमोरी की स्थिरता वाले कीड़े आमतौर पर अवांछित होते हैं और अच्छी तरह से लिखे गए सॉफ्टवेयर को उनका प्रदर्शन नहीं करना चाहिए। हालाँकि, यदि आप वास्तव में चाहते हैं , तो आप उन्हें एक ही सीपीयू पर अनुकरण कर सकते हैं। (हालांकि यह धीमा हो सकता है)
user253751

4
nn

11
"सिंगल-कोर मशीन टाइम-स्लाइसिंग / टाइम-शेयरिंग का उपयोग करके मल्टी-कोर मशीन का अनुकरण कर सकती है।" और वास्तव में "आधुनिक" ऑपरेटिंग सिस्टम की सुबह से ऐसा किया है।
मोनिका

1
@ PaulA.Clayton मुझे लगता है कि यदि आप दो अलग-अलग प्रक्रियाओं को करने के लिए थे, तो आपको स्मृति संगतता समस्याएं (जैसे गैर-परमाणु वृद्धि) मिल सकती हैं, दोनों ने एक ही साझा मेमोरी को संशोधित किया। आपको बस पूर्व-खाली मल्टी-टास्किंग की आवश्यकता है। बेशक, यह आम तौर पर यही है कि आधुनिक ओएसिस में समान लिखने योग्य मेमोरी साझा करने की प्रक्रिया नहीं होती है जब तक कि वे स्पष्ट रूप से नहीं पूछते हैं।
पैट्रिक एम

58

सवाल यह है: क्या बाधाओं के तहत?

निश्चित रूप से समस्याएं हैं जहां, अगर हम सवाल पूछते हैं "क्या हम दिए गए समय में हार्डवेयर एक्स पर इस समस्या को हल कर सकते हैं", तो उत्तर नहीं होगा।

लेकिन यह एक "भविष्य-प्रूफ" उत्तर नहीं है: जो चीजें अतीत में तेजी से एक ही कोर में नहीं की जा सकती थीं, शायद अब हो सकती हैं, और हम यह अनुमान नहीं लगा सकते हैं कि भविष्य का हार्डवेयर क्या सक्षम होगा।

कम्प्यूटेबिलिटी के संदर्भ में, हम जानते हैं कि एक एकल-टेप ट्यूरिंग मशीन एकल या मल्टी-कोर कंप्यूटर के समान सभी कार्यों की गणना करने में सक्षम है, इसलिए, रनटाइम एक तरफ, कोई समस्या नहीं है कि एक मल्टी-कोर कंप्यूटर हल कर सकता है कि एक सिंगल-कोर नहीं कर सकते।

ग्राफिक्स की तरह कुछ के संदर्भ में, सचमुच सीपीयू पर सब कुछ सीपीयू पर किया जा सकता है ... यदि आप लंबे समय तक इंतजार करने के लिए तैयार हैं।


3
@JDDvorak मैं वास्तव में कहूंगा कि यह GPU द्वारा बिल्कुल भी नहीं किया गया है;)
टॉम

15
यदि समय एक बाधा नहीं है, तो आप हाथ, कलम और कागज द्वारा सभी गणना कर सकते हैं।
गणितज्ञ

2
@ मैथ्रेडलर हां, क्योंकि मस्तिष्क ट्यूरिंग कम्प्लीट है। कुछ ऐसा जो फिजिक्स स्टैकएक्सचेंज पर एक लंबी बहस में बदल गया ।
JBentley

4
दरअसल, @JDDvorak, वीजीए जेनरेट करना काफी सरल है और सॉफ्टवेयर में कम 16 मेगाहर्ट्ज माइक्रो कंट्रोलर पर किया जा सकता है, क्योंकि यह प्रोजेक्ट दिखाता है: pyroelectro.com/tutorials/arduino_basic_vga
axello

3
@ मैथ्रेडलर यह वास्तव में एक जटिल प्रश्न है जो पहले दिखाई देता है। एक संक्षिप्त उत्तर "हां" हो सकता है क्योंकि एक विशेष मशीन ऐसा करने के लिए किसी भी ट्यूरिंग पूर्ण उपकरण की आवश्यकता के बिना कंप्यूटर का निर्माण कर सकती है। एक लंबे समय तक उत्तर "नहीं" हो सकता है, क्योंकि ट्यूरिंग मशीन के निर्माण की क्षमता का मतलब यह हो सकता है कि किसी के पास एक बड़ी ट्यूरिंग मशीन है जो "इनिशियलाइज़ेशन" स्थिति में है जहां यह बाकी की स्टेट मशीन का निर्माण करता है। पूर्ण उत्तर और भी जटिल है क्योंकि हमने कभी ट्यूरिंग कम्प्लीट डिवाइस का निर्माण नहीं किया है। हमने मशीनों के लिए अमूर्त विचार विकसित किए हैं ...
Cort Ammon

17

जैसा कि अन्य जवाबों में कहा गया है, एक एकल सीपीयू हमेशा कई सीपीयू का अनुकरण कर सकता है जो समय को घटाकर और प्रत्येक आभासी सीपीयू की भूमिका निभा सकता है। यह अनुकरण निश्चित रूप से सही उत्तरों की गणना करेगा।

वास्तविक दुनिया में, निष्पादन का समय महत्वपूर्ण हो सकता है। इसका मतलब औसत दर्जे की फ्रेम दर और एक तारकीय दृश्य अनुभव के बीच अंतर हो सकता है। या व्यापार में लाभ और हानि के बीच का अंतर।

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

मुझे कुछ संख्याओं के साथ स्पष्ट करें। मान लें कि आपके पास एक डेटा पाइपलाइन (3 डी रेंडरिंग आदि) है जिसमें 4 प्रोसेसिंग चरण हैं, प्रत्येक चरण में प्रोग्राम कोड के 256 KiB हैं, और आपके पास आसानी से L2 कैश के 256 KiB के साथ 4 सीपीयू हैं। यदि आप एक एकल CPU पर इस प्रसंस्करण को चलाने की कोशिश करते हैं, तो 4 कार्यों के बीच स्विच करना महंगा होगा और इसमें भारी कैश मिसेज़ शामिल होंगे। दूसरी ओर यदि आप इसे 4-कोर सिस्टम पर चलाते हैं, तो गणना संभावित रूप से बहुत चिकनी हो सकती है, कैश मिस कम से कम हैं, और संदर्भ स्विच न के बराबर हैं। (एक साइड नोट के रूप में, यह कुछ कोर के लिए कुछ अनुप्रयोगों को पिन करने की धारणा से संबंधित है - जैसे केवल एक कोर में ओएस कर्नेल संचालन करना, या टीसीपी / आईपी हैंडलिंग, आदि)


7

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

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

वास्तव में, यदि आप प्रदर्शित कर सकते हैं कि आपके एल्गोरिथ्म को ट्यूरिंग मशीन द्वारा हल किया जा सकता है (जो कि लगभग हर एल्गोरिथ्म जिसकी हमें परवाह है), तो यह साबित किया जा सकता है कि एल्गोरिथ्म न केवल एक कोर सीपीयू द्वारा किया जा सकता है, बल्कि वास्तव में एक स्मृति के लिए टेप का एक बहुत लंबा टुकड़ा के साथ राज्य मशीन!

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

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

इस समय की कमी का एक अधिक विदेशी संस्करण कठिन-वास्तविक समय प्रणालियों में है। कुछ कठिन वास्तविक समय प्रणालियों में, इंटरप्ट की सेवा इतनी मांग है कि आपको वास्तव में एक मल्टी-कोर सीपीयू चुनना होगा जो आपको कोरप में इंटरप्ट को विभाजित करने देता है, या आप समय सीमा में चलते हैं।

डेटा बूस के साथ एक और सीमा उत्पन्न होती है। एक उदाहरण के रूप में ब्लू जीन / पी पर विचार करें। विशेष रूप से ब्लू जीन / पी सुपरकंप्यूटर की JUGENE में 144 टेराबाइट्स मेमोरी है। वे बस एक ही सीपीयू कंप्यूटर नहीं बनाते हैं जो कि सभी मेमोरी को एक्सेस कर सके।


1
पुन:, वे केवल एक सीपीयू कंप्यूटर नहीं बनाते हैं जो [[बहुत] मेमोरी तक पहुंच सकते हैं। "मत करो" नहीं "के रूप में ही नहीं है"। आप 144 टेराबाइट्स या मुख्य मेमोरी के साथ एक यूनिप्रोसेसर डिजाइन और बना सकते हैं । एकमात्र कारण जो लोगों को कम रिटर्न के कारण नहीं है: यूनी-प्रोसेसर डिज़ाइन में अधिक मेमोरी जोड़ने का वृद्धिशील, व्यावहारिक मूल्य किसी बिंदु पर एक चरम पर पहुंच जाता है और फिर मेमोरी का आकार बढ़ने पर गिर जाता है, जबकि वृद्धिशील लागत स्थिर रहती है ।
सोलोमन स्लो

@jameslarge यही कारण है कि यह वाक्य वास्तविक जीवन व्यावहारिक हार्डवेयर पर चर्चा करने वाले मेरे उत्तर के हिस्से में आया था, और यह उत्तर के पहले 2/3 में क्यों नहीं दिखाई दिया, जिसने सैद्धांतिक क्षमताओं पर चर्चा की।
कोरट अमोन

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

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

6

यदि आपको अपने वास्तविक समय के व्यवहार (या जितना संभव हो उतना कम) को परेशान किए बिना एकल प्रसंस्करण तत्व पर चलने वाली प्रक्रिया का निरीक्षण करने की आवश्यकता है, जैसे बेंचमार्किंग या गतिविधि लॉगिंग के लिए, आपको संभवतः एक अलग प्रसंस्करण संसाधन की आवश्यकता होगी।


अच्छा है, एक उदाहरण है कि सटीक अनुकरण की आवश्यकता होगी अगर नहीं कई प्रोसेसर
बेन लेगियरियो

अरे यह आपका खाता है? क्या आप इसे मर्ज करना चाहेंगे?
बुराई

4

अन्य उत्तर समानता के सीमित दृष्टिकोण का "वितरित संगति" के रूप में पालन करते हैं। यह कुछ उत्तर देता है: संगणना ला ला ट्यूरिंग के एक स्वच्छ मॉडल में, कई कोर एक लाभ की पेशकश नहीं करते हैं; एकमात्र लाभ जो आपको मिल सकता है वह है दक्षता।

एक बात यह है कि एक से अधिक प्रसंस्करण इकाइयाँ (PUs) वह कर सकती हैं जो एक अकेला नहीं कर सकता, हालाँकि: समानांतर में संचालन को निष्पादित करता है , जो कि एक ही समय में होता है

यदि आप एक ही समय में कई प्रोग्राम चलाते हैं तो यह बहुत उपयोगी है। दी, यह केवल शायद ही कभी होता है कि आपको समवर्ती निष्पादन की तुलना में अधिक आवश्यकता होती है, और अधिकांश उपयोग बढ़ी हुई दक्षता के लिए नीचे आते हैं। लेकिन वहाँ है इस अंतर।

कहें कि आपको वास्तविक समय में कई स्रोतों से डेटा सेंसर डेटा को संसाधित करने की आवश्यकता है । आपके आवेदन में जो भी सटीक अर्थ है, एक पु केवल अपनी प्रतिक्रिया समय सीमा का उल्लंघन किए बिना कई इनपुट धाराओं को समवर्ती रूप से संभाल सकता है। तो अगर आप की जरूरत है कई मवाद आप अपने वर्तमान पीयू पीढ़ी के लिए भी कई सेंसर होते हैं एक बार।

k

kkk


0

एक सीएस पोव से, "वितरित कंप्यूटिंग" की तुलना में "मल्टीकोर" सिद्धांत में बहुत भिन्न नहीं है। मूल अवधारणा "स्वतंत्र कंप्यूटिंग तत्व हैं (जो समानांतर में गणना करते हैं"। इसलिए सवाल को थोड़ा सा दोहराते हुए ("मल्टीकोर" वास्तव में सीएस में एक सैद्धांतिक अवधारणा नहीं है) कुछ अन्य संभावनाओं की ओर जाता है। जैसा कि अन्य जवाबों में बताया गया है, अनुक्रमिक प्रोग्रामिंग। एक सीएस पोव से समानांतर प्रोग्रामिंग के बराबर। यह कंप्यूटिंग के लिए सैद्धांतिक प्रणाली की परिभाषा पर वापस जाता है, अर्थात् ट्यूरिंग मशीन। सीएस के प्रदर्शन का सैद्धांतिक विश्लेषण अंततः टीएम के संदर्भ में है जहां समानांतर बनाम अनुक्रमिक का अंतर वास्तव में लागू नहीं होता है। हालांकि मल्टीटैप टीएम के साथ कुछ मोटा सादृश्य है )।

लेकिन इस सवाल को कम अमूर्त रूप से देखते हुए, वितरित कंप्यूटिंग वास्तव में बेहतर है या संभवतः लगभग कुछ समस्याओं के लिए भी आवश्यक है जिसमें दोष सहिष्णुता शामिल है । इस क्षेत्र में एक अवधारणा है कि यह लागू होता है जब / जहां स्वतंत्र कंप्यूटिंग तत्वों को अविश्वसनीयता के कुछ डिग्री के लिए लिया जाता है (यह वास्तव में सभी संदर्भों के लिए एक सार्वभौमिक रूप से लागू धारणा नहीं है)। यहां ऐसे कई मामले हैं जहां दोष सहिष्णुता में सुधार किया गया है या यहां तक ​​कि स्वतंत्र कंप्यूटिंग तत्वों की आवश्यकता है

  • विचार करें कि प्रत्येक प्रोसेसर में गणना के दौरान एक "स्वतंत्र [[]]%" विफल होने की संभावना है। एक प्रणाली को विकसित किया जा सकता है जिससे संचार के माध्यम से सिस्टम की समग्र गलती सहनशीलता व्यक्तिगत घटकों से बेहतर होती है। यह कई दशक पहले अंतरिक्ष शटल सिस्टम में जैसे लागू किया गया था। हाल ही में बेसिक प्रोटोकॉल हैं जो इसका उपयोग करने के लिए डिज़ाइन किए गए हैं जैसे पाक्सोस जो तथाकथित आम सहमति समस्या को हल करते हैं । एक और अधिक डाउन-टू-अर्थ उदाहरण Google है, जिसके पास अनिवार्य रूप से अपने सुपर कंप्यूटर (ओं) का निर्माण करने के लिए मालिकाना एल्गोरिदम का एक बहुत कुछ है, जो व्यक्तिगत रूप से अविश्वसनीय तत्वों से बाहर है, जो दोष-सहिष्णु एल्गोरिदम के साथ मिलकर है।

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

  • समानांतरवाद का एक क्लासिक विश्लेषण निष्कर्ष निकालता है कि लगभग 7 "मौलिक" समस्या पैटर्न प्रकार हैं जो विशेष रूप से समानांतर निष्पादन टूटने में विघटित होते हैं। देखने के समानांतर कम्प्यूटिंग अनुसंधान के लैंडस्केप: बर्कले से एक दृश्य

  • यहाँ एक खुले सैद्धांतिक प्रश्न के कुछ तत्व हैं जो अधिकांश अन्य उत्तरों में संबोधित किए गए wrt प्रदर्शन विचार हैं। सवाल यह है कि क्या कोई समस्या है जो अनुक्रमिक की तुलना में समानांतर में "स्वाभाविक रूप से तेज" है, को मोटे तौर पर P = NC समस्या के रूप में भी जाना जाता है, जहां NC को "कुशलता से समानांतर करने योग्य" एल्गोरिदम की श्रेणी माना जाता है और P "कुशल [अनुक्रमिक] एल्गोरिदम है। "


1
मुझे यह जवाब पसंद है! मैंने आपके उदाहरणों से बहुत कुछ सीखा: डी
बेन लेगिएरियो

-1 विकिरण के साथ मिशन-महत्वपूर्ण वातावरण में दोष सहिष्णुता के लिए, -1 कैप और अतिरेक की कमी के लिए।
सेस टिम्मरमैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.