कण अपघटन और डोमेन अपघटन समानांतरीकरण एल्गोरिदम के फायदे और नुकसान क्या हैं?


15

मैं Gromacs और DL_POLY जैसे कई सॉफ्टवेयर पैकेजों का उपयोग करके आणविक गतिकी (MD) सिमुलेशन चला रहा हूं।

Gromacs अब कण अपघटन और डोमेन अपघटन एल्गोरिदम दोनों का समर्थन करता है। डिफ़ॉल्ट रूप से, Gromacs सिमुलेशन डोमेन अपघटन का उपयोग करते हैं, हालांकि कई सालों तक, हाल ही में, कण अपघटन Gromacs में लागू एकमात्र विधि थी। ग्रोमाक्स के एक पेपर (डीओआई 10.1002 / jcc.20291) में, लेखक कण विघटन की अपनी प्रारंभिक पसंद का कारण देते हैं:

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

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

मुझे यकीन है कि यह एक बहुत ही जटिल प्रश्न है (और शायद कई पुस्तकों का विषय), लेकिन मूल रूप से, यदि कण अपघटन इतना अनुकूल लगता है, तो किसी को डोमेन अपघटन का उपयोग करने की आवश्यकता क्यों होगी? क्या डोमेन अपघटन सिर्फ अनुकूल है अगर सिस्टम का आकार बहुत बड़ा है (प्रत्येक प्रोसेसर में कुल कॉन्फ़िगरेशन को स्टोर करना मुश्किल या असंभव है)? ऊपर उद्धृत पैराग्राफ के आधार पर, मुझे यकीन नहीं है कि डोमेन अपघटन अब क्यों है, अभी हाल ही में, Groms में डिफ़ॉल्ट समानांतरण एल्गोरिथ्म।

ऐसा लगता है कि DL_POLY अब (संस्करण 4) भी डोमेन अपघटन का उपयोग करता है। संस्करण 4 मैनुअल से:

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

...

डीडी रणनीति के मामले में SHAKE (RATTLE) एल्गोरिथ्म DL_POLY क्लासिक की प्रतिकृति डेटा विधि की तुलना में सरल है, जहां परमाणु पदों (विलय और splicing) के वैश्विक अपडेट की आवश्यकता होती है। "

यह ऐसा लगता है जैसे कि डोमेन अपघटन अच्छा है क्योंकि यह अधिक कुशल हो सकता है, भले ही इसे लागू करना अधिक कठिन हो।

दूसरी ओर, एक पिछले संस्करण (DL_POLY Classic) ने दोहराया डेटा समानांतरकरण का उपयोग किया था, जो कण अपघटन का दूसरा नाम लगता है। उस संस्करण के मैनुअल से:

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

यह पैराग्राफ आम तौर पर इस प्रश्न में पहले पैराग्राफ के साथ संगत लगता है, सिवाय इसके कि यह कहता है कि प्रतिकृति डेटा / कण अपघटन में "उच्च संचार ओवरहेड्स" है। ग्रोमैक्स पेपर का पैराग्राफ इसके विपरीत कहता है - कि कण अपघटन बेहतर है क्योंकि इसमें डोमेन अपघटन की तुलना में कम संचार ओवरहेड होता है।

क्या आपके पास कोई विचार है?

जवाबों:


10

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

हे(एन2)हे(एन)

हे(एन)हे(एन) एनयह बेहतर है। इसलिए रैखिक आकार का तर्क। डोमेन अपघटन विधि सेल लिंक्ड सूचियों विधि का एक सीधा विस्तार है - कोशिकाओं को विभिन्न सीपीयू के बीच विभाजित किया जाता है।

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

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

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


बहुत बढ़िया जवाब! क्या एक समान परमाणु वितरण होना आम है? क्या यह समान वितरण के लिए समान कार्य नहीं करता है?
fcruz

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

2
हे(एन2)हे(एनलॉगएन)आरहे(एन)

4

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

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

आपका तर्क यह है कि "कण अपघटन का लाभ है कि किसी को डोमेन सीमाओं के पार जाने वाले कणों से निपटने की ज़रूरत नहीं है" यदि सिमुलेशन के समय के पैमाने पर प्रसार महत्वपूर्ण है, तो पकड़ नहीं है।

डोमेन अपघटन इस "अप फ्रंट" के साथ प्रसार के साथ-साथ बातचीत के लिए जिम्मेदारी को माइग्रेट करके करता है, जिससे प्रत्येक प्रोसेसर पर डेटा स्थानीयता में सुधार होता है, और संचार मात्रा को कम करता है।

अस्वीकरण: मैं GROMACS विकसित करने में मदद करता हूं, और संभवत: अगले सप्ताह कण अपघटन कार्यान्वयन को चीर देगा ;-)


0

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

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

पीहे(पी2)

पीहे(पी)

हे(पी)

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


यह बहुत अच्छा जवाब है। मैं बस एक सटीक जोड़ना चाहता था। दानेदार प्रवाह सिमुलेशन जो एमडी-जैसे एल्गोरिदम पर आधारित विधियों का उपयोग करते हैं (जैसे कि असतत तत्व विधि) अक्सर ऐसे मामले सामने आते हैं जहां आपके पास ऐसे क्षेत्र होते हैं जो लगभग कणों से भरे होते हैं और अन्य जो उनसे भरे होते हैं ...
BlaB

यह निश्चित रूप से कण अपघटन की आवश्यकता नहीं है कि अंतःक्रियात्मक साझेदार यादृच्छिक रूप से वितरित किए जाते हैं। एक और अक्सर कणों के स्थानिक रूप से कॉम्पैक्ट समूहों में विघटित करके शुरू करना चाहिए, क्योंकि वे आम बातचीत पड़ोसियों को साझा करेंगे। अंततः प्रसार का मतलब होगा कि वितरण यादृच्छिक हो जाता है। यही कारण है कि ऊपर उल्लिखित GROMACS कण अपघटन सिमुलेशन समय-समय पर फिर से शुरू हो जाएगा, अपघटन के इलाके को ताज़ा करने के लिए।
mabraham
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.