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