विभिन्न प्रोसेसर में उत्पन्न मूल्यों से समानांतर में एक मैट्रिक्स सिस्टम को कैसे इकट्ठा और हल करें?


10

मैं Heterogeneous Multiscale Method (HMM) का उपयोग करके एक मल्टीस्केल समस्या का समाधान कर रहा हूँ । अनिवार्य रूप से, मेरी विशेष प्रक्रिया निम्नलिखित पुनरावृत्ति प्रक्रिया का उपयोग करती है:

  1. कई स्थानीय मैट्रिक्स सिस्टम को हल करें।
  2. स्थानीय प्रणालियों के समाधान से ब्याज के मूल्य की गणना करें।
  3. स्थानीय "ब्याज के मूल्यों" से एक वैश्विक मैट्रिक्स प्रणाली को इकट्ठा करें
  4. ग्लोबल मैट्रिक्स सिस्टम को हल करें
  5. नए स्थानीय मैट्रिक्स सिस्टम बनाने के लिए वैश्विक मैट्रिक्स सिस्टम के समाधान का उपयोग करें।

कुछ अभिसरण मानदंडों को पूरा करने तक दोहराएं।

चूंकि समीकरणों के कई स्थानीय (स्वतंत्र) रैखिक सिस्टम हैं और कई सिस्टम स्थानीय रैम मेमोरी में फिट हो सकते हैं, इसलिए मुझे लगता है कि प्रत्येक प्रोसेसर में एकाधिक "स्थानीय" सिस्टम को लोड करना और क्रमिक रूप से प्रत्येक सिस्टम को हल करना सबसे अच्छा है ( यह पोस्ट किया गया प्रश्न देखें )।

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

  1. एक प्रोसेसर पर "ब्याज के मूल्यों" को इकट्ठा करें, और एक प्रोसेसर पर क्रमिक रूप से वैश्विक मैट्रिक्स सिस्टम को इकट्ठा / हल करें।
  2. प्रत्येक प्रोसेसर पर ब्याज के मूल्यों को कॉपी करें, और प्रत्येक प्रोसेसर पर क्रमिक रूप से एक ही वैश्विक मैट्रिक्स सिस्टम को इकट्ठा / हल करें।
  3. यह मानते हुए कि प्रत्येक प्रोसेसर वैश्विक मैट्रिक्स के सन्निहित ब्लॉकों का उत्पादन करने के लिए आवश्यक "मूल्यों के हित" रखता है, फिर हम स्थानीय रूप से वैश्विक मैट्रिक्स के विभाजन को इकट्ठा कर सकते हैं, फिर उन्हें समानांतर में एक साथ हल कर सकते हैं।

मैं प्रत्येक विधि के कुछ फायदे / नुकसान देख सकता हूं। विधि 1 में, सुलझाने के चरण में कोई संचार आवश्यक नहीं है, लेकिन रूट प्रोसेसर से और उससे संचार एक अड़चन बन सकता है (विशेष रूप से पैमाने पर)। विधि 2 को पहले विधि की तुलना में वैश्विक मैट्रिक्स को इकट्ठा करने के लिए अधिक इंटरप्रोसेसर संचार की आवश्यकता हो सकती है, लेकिन समाधान चरण में या इसके बाद आने वाले स्थानीय मैट्रिक्स विधानसभा चरण में किसी भी संचार की आवश्यकता नहीं है। विधि 3 को स्थानीय या वैश्विक मैट्रिसेस की असेंबली के लिए कोई इंटरप्रोसेसर संचार की आवश्यकता नहीं है, लेकिन इसे सुलझाने के चरण में इसकी आवश्यकता है।

मान लीजिए कि प्रत्येक स्थानीय प्रणाली x के क्रम पर है और x स्थानीय मैट्रिक्स सिस्टम हैं। चलो आगे मान लेते हैं कि वैश्विक मैट्रिक्स प्रणाली का आकार x । इन मान्यताओं के तहत, तीन उपर्युक्त रणनीतियों में से कौन सा संभवतः वैश्विक प्रणाली के तेज समाधान की ओर ले जाएगा? क्या वैश्विक मैट्रिक्स के लिए अन्य मैपिंग रणनीतियां हैं जो प्रति पुनरावृत्ति तेजी से काम कर सकती हैं?103103103103103103


बहुत ही रोचक सवाल। मुझे उम्मीद है कि किसी के पास अच्छे उत्तर होंगे।
१est

क्या आपके पास एक विचार है कि स्थानीय प्रणालियों के संबंध में वैश्विक प्रणाली कितनी बड़ी है? यानी, अगर देखते हैं स्थानीय सिस्टम हल किया जा करने के लिए, वैश्विक प्रणाली है कुछ के लिए ? क्या आपके पास एक विचार है कि कितना बड़ा है? आपके प्रश्नों के उत्तर आकारों पर बहुत अधिक निर्भर होने की संभावना है। nkn×knkn
बिल बर्थ

@BillBarth: मान लीजिए कि n के क्रम पर है , और हम चाहते हैं कि k तेजी से बड़ा हो जाए। 106
पॉल

तो मेरे पहले प्रश्न का उत्तर "हाँ" है? और आप कितने बड़े को पाना चाहते हैं? यानी, क्या आप अंततः स्थानीय सिस्टम से एक लाख पैरामीटर निकालने जा रहे हैं, या यह की तुलना में अपेक्षाकृत छोटा रहेगा ? स्थानीय सिस्टम कितने बड़े हैं? अंत में, सभी सिस्टम सघन या विरल हैं? kn
बिल बर्थ

@BillBarth: अभी के लिए, मान लीजिए कि और वैश्विक मैट्रिक्स रैखिक प्रणालियों में से प्रत्येक से केवल एक पैरामीटर निकालेंगे । स्थानीय प्रणालियों का आकार भिन्न हो सकता है जहां n वैश्विक मैट्रिक्स का आकार है, और सभी रैखिक प्रणालियां (स्थानीय और वैश्विक) विरल, सममित, सकारात्मक निश्चित और तिरछे प्रमुख हैं। k<100O(n)
पॉल

जवाबों:


4

मुझे नहीं लगता कि ऐसा कोई भी मामला है जहां आप रैंक ० पर हल करना चाहते हैं। निरर्थक हल लगभग हमेशा बेहतर होता है, छोटी चीज़ों के लिए, आर्डर कम करना जितना कुशल है, और निरर्थक गणना केवल दो के बजाय एक है।

हालाँकि, चाहे सभी नोड्स पर, या सबसेट पर, या निरर्थक सबसेट की गणना करना है, हार्डवेयर और सिस्टम के आकार पर निर्भर करता है। इस प्रकार, आपके पास एक प्रणाली होनी चाहिए जो उनमें से कोई भी कर सकती है। PETSc में PCREDUNDANT समानांतर में सभी प्रक्रियाओं, कुछ प्रक्रियाओं, या प्रक्रियाओं के सबसेट को आसानी से हल कर सकता है।

लेकिन अगर वैश्विक समस्या आकार जैसा कि आप टिप्पणियों में दावा करते हैं, यह एक समानांतर हल से महत्वपूर्ण रूप से लाभ उठाने के लिए पर्याप्त है। समानांतर विधानसभा बहुत मानक और अनुशंसित परिदृश्य है।106


मैंने एक निरर्थक वैश्विक हल (MPI_Allgatherv का उपयोग करके) का उपयोग करने के अपने सुझाव की कोशिश की, और इसकी तुलना रैंक-0-केवल वैश्विक हल (MPI_Gatherv और MPI_Bcast का उपयोग करके) से की, और वैश्विक प्रणाली में अज्ञात के आकार के लिए इसका परीक्षण किया। । ऐसा लगता है कि निरर्थक समाधान रैंक-0-केवल हल की तुलना में लगातार थोड़ा धीमा रहा है। मुझे या तो MPI कार्यान्वयन पर संदेह है या नेटवर्क हार्डवेयर एक संभावित कारण है। क्या यह प्रशंसनीय / संभावना है? N=4096
पॉल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.