क्या वैज्ञानिक कंप्यूटिंग में कोई प्रसिद्ध समस्याएं / एल्गोरिदम हैं जो समानांतरकरण द्वारा नहीं जा सकते हैं


27

क्या वैज्ञानिक कंप्यूटिंग में कोई प्रसिद्ध समस्याएं / एल्गोरिदम हैं जो समानांतरकरण द्वारा नहीं जा सकते हैं? यह मुझे CUDA पर किताबें पढ़ने के दौरान लगता है कि ज्यादातर चीजें हो सकती हैं।


मेमोरी पदानुक्रम पर विचार करते समय भी बाइनरी सर्च को (महत्वपूर्ण रूप से, एक कारक द्वारा) नहीं बख्शा जा सकता है।

ग्राम श्मिट एल्गोरिथ्म: en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process

3
@ एनिकॉर्न नहीं, वाम-दिखने वाले शास्त्रीय ग्राम-श्मिट और दाहिनी-संशोधित संशोधित ग्राम-श्मिट समानांतर में अच्छी तरह से काम करते हैं। हाल ही में लोकप्रिय TSQR सहित कई अन्य समानांतर QR एल्गोरिदम हैं।
जेड ब्राउन

@ राफेल: मुझे लगता है कि कारक लॉग (n), n = # प्रोसेसर द्वारा बाइनरी खोज को गति देना संभव है। O खोज अंतराल को भागों में विभाजित करने और जाँच करने के लिए कि कहाँ जारी रखना है, अंतराल को n भागों में विभाजित करें। शायद अधिक कुशल तरीके हैं, मुझे पता है।
चमत्कार 173

जवाबों:


32

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

उदाहरण

  • C=Tमानक एल्गोरिथ्म का उपयोग करते हुए एक त्रिदोषजन्य समाधान के लिए । प्रत्येक ऑपरेशन पिछले ऑपरेशन को पूरा करने पर निर्भर है, इसलिए समानता के लिए कोई अवसर नहीं है। त्रिदोषजन्य समस्याओं को एक नेस्टेड विच्छेदन प्रत्यक्ष समाधान, बहुस्तरीय डोमेन अपघटन का उपयोग करके समानांतर कंप्यूटर पर लॉगरिदमिक समय में हल किया जा सकता है, और हार्मोनिक एक्सटेंशन का उपयोग करके निर्मित आधार कार्यों के साथ मल्टीग्रिड (ये तीन एल्गोरिदम कई आयामों में अलग हैं, लेकिन 1 डी में बिल्कुल मेल कर सकते हैं)।
  • एक घने निचले-त्रिकोणीय हल के साथ मैट्रिक्स में , लेकिन महत्वपूर्ण पथ केवल , इसलिए कुछ समानताएँ लाभकारी हो सकती हैं।टी = एन = हे ( एम 2 ) सी = मीटर = m×mT=N=O(m2)C=m=T
  • मल्टीग्रिड और एफएमएम दोनों में , जिसकी लंबाई एक महत्वपूर्ण पथ के ।सी = लॉग टीT=NC=logT
  • एक समय के लिए स्पष्ट लहर प्रसार डोमेन के एक नियमित जाल पर की आवश्यकता है समय कदम (स्थिरता के लिए), इसलिए महत्वपूर्ण पथ कम से कम । कार्य की कुल राशि । प्रोसेसर की अधिकतम उपयोगी संख्या , शेष कारक को बढ़ी हुई समानता से पुनर्प्राप्त नहीं किया जा सकता है।τ(0,1)dk=τ/ΔtτN1/dC=kT=kN=τN(d+1)/dP=T/C=NN1/d

औपचारिक जटिलता

एनसी जटिलता वर्ग उन समस्याओं कि समानांतर में कुशलता से हल किया जा सकता (यानी, polylogarithmic समय में) की विशेषता है। यह अज्ञात है कि , लेकिन यह झूठी होने के लिए व्यापक रूप से परिकल्पित है। यदि यह वास्तव में मामला है, तो पी-पूर्ण उन समस्याओं को चिह्नित करता है जो "स्वाभाविक रूप से अनुक्रमिक" हैं और समानता के साथ महत्वपूर्ण रूप से नहीं उठाए जा सकते हैं।NC=P


13

इसे एक सैद्धांतिक पहलू देने के लिए, को समानांतर प्रोसेसर वाले सिस्टम पर समय में हल करने वाली जटिलता वर्ग के रूप में परिभाषित किया गया है । यह अभी भी अज्ञात है कि क्या (हालांकि अधिकांश लोगों को संदेह है कि यह नहीं है) जहां बहुपद समय में हल करने योग्य समस्याओं का समूह है। "सबसे मुश्किल" parallelize करने की समस्याओं के रूप में जाना जाता है अर्थ में -Complete समस्याओं में हर समस्या एक करने के लिए कम किया जा सकता के माध्यम से -Complete समस्या कटौती। यदि आप दिखाते हैं कि एक एकल -complete समस्या , तो आप साबित करते हैं किNC( n कश्मीर ) पी = एन सी पी पी पी पी एन सी पी एन सी पी = एन सीO(logcn)O(nk)P=NCPPPPNCPNCP=NC (हालांकि यह शायद ऊपर बताए अनुसार गलत है)।

इसलिए किसी भी समस्या यह है कि है -Complete सहज parallelize करना कठिन होगा (हालांकि बड़ा speedups अभी भी संभव हैं)। एक -complete समस्या जिसके लिए हमारे पास बहुत अच्छा स्थिर कारक स्पीडअप नहीं है, रैखिक प्रोग्रामिंग है ( या ओआर-एक्सचेंज पर यह टिप्पणी देखें )।पीPP


9

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

इसके अलावा, मुख्य मुद्दा अक्सर मेमोरी बैंडविड्थ में एक अड़चन है। विशेष रूप से अधिकांश GPU के साथ आपके सैद्धांतिक फ़्लॉप्स में आपके एएलयू को प्राप्त होने वाले फ़्लोटिंग पॉइंट नंबरों की मात्रा बहुत अधिक हो सकती है, क्योंकि कम अंकगणितीय तीव्रता (फ्लॉप्स / कैश-मिस) वाले एल्गोरिदम रैम पर प्रतीक्षा करने का एक बड़ा समय बिताएंगे।

अंत में, किसी भी समय कोड के एक टुकड़े को ब्रांचिंग की आवश्यकता होती है, इसे अच्छे प्रदर्शन की संभावना नहीं है, क्योंकि ALU के आमतौर पर आउटबर्नर लॉजिक है।

अंत में, किसी चीज़ का एक बहुत ही सरल उदाहरण जो कि एक GPU से गति प्राप्त करना कठिन होगा, बस एक पूर्णांक के एक सरणी में शून्य की संख्या की गिनती कर रहा है, जैसा कि आपको अक्सर शाखा करना पड़ सकता है, सबसे अधिक 1 ऑपरेशन (वेतन वृद्धि) द्वारा एक) उस स्थिति में जब आप एक शून्य पाते हैं, और प्रति ऑपरेशन कम से कम एक मेमोरी लाने के लिए।

ब्रांचिंग समस्या से मुक्त एक उदाहरण एक वेक्टर की गणना करना है जो किसी अन्य वेक्टर का संचयी योग है। ((1,2,1] -> [1,3,4])

मैं नहीं जानता कि क्या ये "प्रसिद्ध" के रूप में गिना जाता है, लेकिन निश्चित रूप से बड़ी संख्या में समस्याएं हैं जो समानांतर कंप्यूटिंग आपकी मदद नहीं करेगी।


3
आपके द्वारा दिया गया "ब्रांचिंग मुक्त उदाहरण" उपसर्ग-योग है, जिसमें वास्तव में एक अच्छा समानांतर एल्गोरिथ्म है: http.developer.nvidia.com/GPUGems3/gpugems3_ch39.html समान कारणों से गणना करना चाहिए। अंकगणित की तीव्रता के आसपास कोई रास्ता नहीं है, हालांकि ...
मैक्स हचिंसन

ठंडा। मैं उस एक पर सही खड़ा हूं।
मेवोप्लप

8

इकोनो समीकरण को हल करने के लिए (प्रसिद्ध) फास्ट मार्चिंग विधि को समानांतर करके नहीं चलाया जा सकता है। इकोनो समीकरण को हल करने के लिए अन्य विधियां (उदाहरण के लिए तेजी से व्यापक तरीके) हैं जो समानांतरकरण के लिए अधिक उत्तरदायी हैं, लेकिन यहां तक ​​कि यहां (समानांतर) स्पीडअप के लिए क्षमता सीमित है।

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

समानांतरकरण के लिए कठिनाइयों को देखने के लिए, सेथियन के वेबपेज पर कुछ उदाहरणों की तरह एक अच्छे भूलभुलैया की कल्पना करें । भूलभुलैया के माध्यम से कम से कम पथ पर कोशिकाओं की संख्या (शायद) किसी भी (समानांतर) एल्गोरिदम की न्यूनतम संख्या के लिए एक कम बाध्य है जो संबंधित समस्या को हल करती है।

(मैं लिखता हूं "(शायद)", क्योंकि निचले सीमाएं साबित करने के लिए बेहद मुश्किल हैं, और अक्सर एक एल्गोरिथ्म द्वारा उपयोग किए जाने वाले संचालन पर कुछ उचित मान्यताओं की आवश्यकता होती है।)


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

सामान्य तौर पर जब मल्टीग्रेड विधियां अच्छी तरह से होती हैं, तो इसका मतलब है कि समस्या की ग्रैन्युलैरिटी डिसक्रिटाइज़ेशन से कम है, और एक असंगत "सही उत्तर की मात्रा" पाठ्यक्रम हल कदम से आ रही है। बस एक अवलोकन, लेकिन उस तरह की चीज पर निचली सीमा मुश्किल है!
मेवप्लप

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

मेरा मतलब यह नहीं था कि यह आसान था, लहर-किरण मोटे स्थान वास्तव में बहुत तकनीकी हैं। लेकिन, मुझे लगता है कि हम सहमत हैं कि खुले क्षेत्रों में समानता के लिए पहले से ही अवसर है, जबकि संकीर्ण "लेबिरिंथ" (जो मानक विधियों के साथ बहुत कम समानता को उजागर करता है) में, अपसंस्कृति समस्या अधिक ट्रैक्टेबल है।
जेड ब्राउन

@JedBrown स्लाइड 39 की www2.ts.ctw.utwente.nl/venner/PRESENTATIONS/MSc_Verburg.pdf (2010 से) ऐसी बातें कहती हैं, "सॉल्वर को 2 डी से 3 डी तक बढ़ाएं" और "एडेप्ट विधि से अलग-अलग वेवनर के साथ समस्याओं के लिए"। इसलिए तरंग-किरण बहु-पक्षीय हो सकता है, लेकिन इसके वर्तमान मुद्दों का वर्णन करने के लिए "बहुत तकनीकी" की तुलना में "अभी तक परिपक्व नहीं" अधिक उपयुक्त प्रतीत होता है। और यह वास्तव में एक उच्च आवृत्ति हेल्महोल्ट्ज़ सॉल्वर नहीं है (क्योंकि यह "पूर्ण लहर" सॉल्वर है)। अन्य "पर्याप्त रूप से परिपक्व" मल्टीग्रिड हेल्महोल्त्ज़ सॉल्वर ("फुल वेव" सॉल्वर) हैं, लेकिन फिर भी ये "सक्रिय शोध" हैं।
थॉमस क्लिम्पेल

1

समस्याओं का एक और वर्ग जो अभ्यास में समानांतर करना कठिन है, वे गोलाई त्रुटियों के प्रति संवेदनशील हैं, जहां अनुक्रमिक स्थिरता संख्यात्मक रूप से हासिल की जाती है।

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

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