समानांतर जटिलता के पैमाने को लगातार कई कोर तक कैसे परिणाम दिया जाए?


20

मुझे "समानांतर एल्गोरिथ्म द्वारा कुशलतापूर्वक हल किया गया" की जटिलता सिद्धांत सिद्धांत को स्वीकार करने में समस्याएँ आई हैं, जो कि NC द्वारा दी गई है :

NC उन समस्याओं की श्रेणी है जिन्हें एक समानांतर एल्गोरिथ्म द्वारा समय में प्रोसेसर पर साथ हल किया जा सकता है ।पी ( एन ) हे ( एन कश्मीर ) , कश्मीर एनO(logcn)p(n)O(nk)c,kN

हम एक PRAM मान सकते हैं ।

मेरी समस्या यह है कि यह "वास्तविक" मशीनों के बारे में बहुत कुछ नहीं कहता है, जो कि प्रोसेसर की एक सीमित मात्रा के साथ मशीनें हैं। अब मुझे बताया गया है कि "यह ज्ञात है" कि हम कुशलतापूर्वक एक प्रोसेसर एल्गोरिथ्म को प्रोसेसर में "इम्प्लीमेंट" कर सकते हैं ।पी एनO(nk)pN

यहाँ "कुशलतापूर्वक" का क्या अर्थ है? क्या यह लोककथा है या क्या कोई कठोर प्रमेय है जो अनुकरण के कारण उपरिव्यय को परिमाणित करता है?

मुझे डर है कि ऐसा होता है कि मुझे एक समस्या है जिसमें अनुक्रमिक एल्गोरिथ्म है और एक "कुशल" समानांतर एल्गोरिदम भी है, जो जब प्रोसेसर पर सिम्युलेटेड होता है, वह भी समय लेता है (जो यदि अनुक्रमिक एल्गोरिथ्म asymptotically इष्टतम है) तो विश्लेषण की इस ग्रैन्युलैरिटी स्तर पर सभी की उम्मीद की जा सकती है। इस मामले में, जहां तक ​​हम देख सकते हैं कोई स्पीडअप नहीं है; वास्तव में, नकली समानांतर एल्गोरिथ्म अनुक्रमिक एल्गोरिथ्म की तुलना में धीमा हो सकता है। यही कारण है कि मैं वास्तव में बाउंड्स (या ऐसे परिणामों की अनुपस्थिति की घोषणा) की तुलना में अधिक सटीक बयानों की तलाश कर रहा हूं ।p O ( n k )O(nk)pO(nk)O


ब्रेंट की प्रमेय?
सीआईसी

क्या आपका मतलब है ? यदि ऐसा है, तो यह (afaik) केवल कुछ विशेष परिस्थितियों में लागू होता है और रनटाइम्स का अनुवाद करने की तुरंत अनुमति नहीं देता है। या यदि ऐसा होता है, तो कृपया एक उत्तर में विस्तृत करें। Tp<Wp+D
राफेल

नेकां सवाल का जवाब "कम रन-टाइम के लिए अधिक हार्डवेयर का व्यापार करना संभव है?" आप अपने आप को लगातार हार्डवेयर तक सीमित रखना चाहते हैं और यह अपने आप को निरंतर मेमोरी में सीमित रखने के समान है, कुछ समस्याओं का एक बेहतर मॉडलिंग। एक व्यावहारिक उपयोग के लिए लुकहेड योजक, अधिक हार्डवेयर देखें ताकि बिट्स का जोड़ । ( एन )NO(N)
एपीग्रामग्राम

जवाबों:


13

यदि आप मानते हैं कि प्रोसेसर की संख्या एक स्थिर से बंधी हुई है, तो आप सही हैं कि NC में होने वाली समस्या व्यवहार में ज्यादा मायने नहीं रखती है। चूंकि k प्रोसेसर और t समानांतर समय के साथ PRAM पर कोई भी एल्गोरिथ्म O ( kt ) समय में सिंगल-प्रोसेसर RAM के साथ सिम्युलेटेड हो सकता है , समानांतर समय और अनुक्रमिक समय केवल एक स्थिर कारक द्वारा भिन्न हो सकता है यदि k एक स्थिर है।

हालाँकि, यदि आप मानते हैं कि आप अधिक प्रोसेसर के साथ एक कंप्यूटर तैयार कर सकते हैं जैसा कि इनपुट आकार बढ़ता है, तो NC में होने वाली समस्या का अर्थ है कि जब तक आप अधिक प्रोसेसर तैयार कर सकते हैं, तब तक चलने का समय "बहुत कम" होगा, या अधिक सटीक रूप से, इनपुट आकार में बहुभुज। अगर आपको लगता है कि यह धारणा अवास्तविक है, तो इसकी तुलना अनबाउंड मेमोरी की धारणा से करें: वास्तविक कंप्यूटर में केवल परिमित मात्रा में स्थान होता है, लेकिन एल्गोरिदम और जटिलता के अध्ययन में, हम लगभग हमेशा यह मानते हैं कि एक कम्प्यूटेशनल डिवाइस में एक निरंतर ऊपरी नहीं होता है अंतरिक्ष पर बंधे। व्यवहार में, इसका मतलब है कि हम कंप्यूटर को अधिक मेमोरी के साथ तैयार कर सकते हैं क्योंकि इनपुट का आकार बढ़ता है, जो कि हम आमतौर पर वास्तविक दुनिया में कंप्यूटर का उपयोग करते हैं। नेकां समानांतर गणना में एक अनुरूप स्थिति को दर्शाता है।


1
1) हाँ, लगातार कई कोर पर parallelising कर सकते हैं केवल निरंतर speedup उपज। यह -terms में निहित और दुख की बात है । (Imho) दिलचस्प सवाल यह है: क्या मैं (इष्टतम) स्पीडअप , या केवल , या प्राप्त कर सकता हूं ? 2) जबकि बहुत सारी रैम की उपलब्धता से अनंत स्मृति की धारणा को सही ठहराया जा सकता है (और, तकनीकी रूप से, आप हार्ड डिस्क को जोड़ सकते हैं), यह प्रोसेसर के लिए आम तौर पर सच नहीं है। विशिष्ट (व्यक्तिगत) मशीनों में आजकल 16 या उससे कम कोर होते हैं। दूसरे शब्दों में, आप प्रासंगिक समस्या आकार तक "सामान्य" परिणामों का उपयोग कर सकते हैं, कई समानांतर परिणाम केवल । कश्मीर कश्मीर / 2 कश्मीर - 1 n 20Okk/2k1n20
राफेल

4
@ राफेल: एक निश्चित समस्या एनसी की है या नहीं, यह सवाल आपके मॉडल पर नहीं है। मैं यह नहीं कह रहा हूं कि आपका प्रश्न निर्बाध है; मैं सिर्फ यह कह रहा हूं कि NC मॉडल बनाने के लिए सही जटिलता वर्ग नहीं है।
Tsuyoshi Ito

मैं वास्तव में यह सुनकर खुश हूं; एक व्यक्ति अन्यथा दावा करता है, हालांकि। जरूरी नहीं कि नेकां के साथ हो लेकिन सामान्य तौर पर जटिलता सिद्धांतात्मक परिणामों के साथ। यह अन्य वर्गों के साथ कैसा है?
राफेल

एक सुधार: नेकां में होने वाली समस्या का मतलब है कि यदि प्रोसेसर की संख्या इनपुट आकार में पर्याप्त बड़ी बहुपद है तो रनिंग टाइम पॉलीग्लॉर्थिक है । यकीनन अधिक यथार्थवादी परिदृश्य में जहां प्रोसेसर की संख्या एक निश्चित बहुपद है जैसे , या जैसे धीमे गैर-स्थिर फ़ंक्शन , NC में सदस्यता औपचारिक रूप से कुछ भी नहीं करती है सब। (लॉगएन)O(n)O(logn)
जेफ

@ जेफ: यह कोई सुधार नहीं है। मैंने केवल इसके कठोर अर्थ दिए बिना "अधिक प्रोसेसर तैयार करें" लिखा था (क्योंकि मुझे लगा कि ऐसा करने से बिंदु अस्पष्ट हो जाएगा)।
त्सुयोशी इतो

10

मैं आपके साथ सहमत हूँ कि कुशल समानांतर एल्गोरिदम को चिह्नित करने का सबसे अच्छा तरीका नहीं है।NC

दरअसल, एनसी द्वारा परिभाषा में बहुत सारी समस्याएं शामिल हैं जो कुशलता से समानांतर नहीं हैं। एक सामान्य उदाहरण समानांतर बाइनरी खोज है। समस्या इसलिए उत्पन्न होती है क्योंकि समानांतर बाइनरी खोज में लिए भी पॉलीग्लारिथमिक समय जटिलता है । किसी भी अनुक्रमिक एल्गोरिदम को सबसे खराब स्थिति में सबसे अधिक लघुगणक समय की आवश्यकता होती है, इसकी समानांतर व्यवहार्यता की परवाह किए बिना में है ।एन सीp=1NC

लेकिन रुकिए, और भी है।

NC एल्गोरिदम बहुभुज समय में समस्याओं को हल करने के लिए प्रोसेसर की एक बहुपद संख्या के साथ समानांतर मशीनों को मानते हैं। हालाँकि, व्यवहार में हम बड़ी समस्याओं को हल करने के लिए मध्यम आकार की मशीनों (प्रोसेसर के संदर्भ में) का उपयोग करते हैं । प्रोसेसर की संख्या उप बहुपद, यहां तक ​​कि सबलाइनर भी होती है।

अंत में, में समस्‍याएं समांतर समयावधि साथ समस्‍याएं हैं। हालांकि , ये समस्‍याएँ से संबंधित नहीं हैं । अब, उदासीन कार्यों में केवल अव्यावहारिक रूप से बड़े मूल्यों के लिए एक प्रासंगिक स्पर्शोन्मुख व्यवहार हो सकता है, और इसके बजाय व्यावहारिक मूल्यों के लिए बहुत कम प्रगतिशील हो सकता है । एक उदाहरण के रूप में, for । यह निम्नानुसार है कि सबलाइनियर समानांतर समय एल्गोरिदम एल्गोरिदम की तुलना में तेजी से चल सकता है।( n ε ) , 0 < ε < 1 एन सी एन एन PO(nϵ),0<ϵ<1NCnnng0.5×109NCn<lg3nn0.5×109NC

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

मैं इस बात से आंशिक रूप से सहमत हूँ। हम अधिक मेमोरी वाला एक नया समानांतर कंप्यूटर खरीदते हैं जब एक पुराने सुपर कंप्यूटर को भी विखंडित कर दिया जाता है क्योंकि DRAM चिप्स समय पर कम खर्चीले होते हैं और कुछ हद तक समानांतर कंप्यूटर को उसके मुख्य घटकों (प्रोसेसर, मेमोरी, इंटरकनेक्ट आदि) के संबंध में संतुलित करते हैं।

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

इसलिए, मेमोरी स्केलेबल समानांतर एल्गोरिदम को डिजाइन करना महत्वपूर्ण है, क्योंकि ये बड़ी समस्याओं के लिए व्यावहारिक हैं।

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

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