আমি গ্রোম্যাকস এবং ডিএল_পল'এর মতো বেশ কয়েকটি সফ্টওয়্যার প্যাকেজ ব্যবহার করে মলিকুলার ডায়নামিক্স (এমডি) সিমুলেশনগুলি চালাচ্ছি।
গ্রোম্যাকস এখন কণা পচন এবং ডোমেন পচন উভয়ই অ্যালগরিদম সমর্থন করে। ডিফল্টরূপে, গ্রোম্যাকস সিমুলেশনগুলি ডোমেন পচন ব্যবহার করে, যদিও বেশ কয়েক বছর ধরে, সাম্প্রতিক অবধি, গ্রোম্যাকসে কণার ক্ষয় একমাত্র পদ্ধতি প্রয়োগ করা হয়েছিল। গ্রোম্যাকস কাগজগুলির একটিতে (ডিওআই 10.1002 / জিসি.সি .20291), লেখকরা তাদের প্রাথমিক কণা পচন পছন্দ করার কারণ দিয়েছেন:
"প্রারম্ভিক নকশার সিদ্ধান্তটি ছিল প্রসেসরের উপর কাজ বিতরণের জন্য ডোমেন পচানোর চেয়ে কণা পচনের সাথে কাজ করার পছন্দ । পরবর্তী ক্ষেত্রে, স্পেসিয়াল ডোমেনগুলি প্রসেসরের উপর অর্পণ করা হয়, যা কেবল স্থানীয় যোগাযোগের মাধ্যমে স্থানীয় স্থানের প্রতিবেশীদের দ্রুত খুঁজে পেতে সক্ষম করে, তবে জটিলতার কারণে স্থানিক সীমানা অতিক্রম করে এমন কণাগুলিতে বিবেচ্য। ডোমেন পচন তখনই আরও ভাল পছন্দ যখন লিনিয়ার সিস্টেমের আকার পারস্পরিক যোগাযোগের পরিধিটি যথেষ্ট পরিমাণে অতিক্রম করে, যা অণু গতিবেগের ক্ষেত্রে খুব কমই ঘটে। কণা পচনের সাথে প্রতিটি প্রসেসরের বাহিনী গণনা করে এবং / বেগের আপডেটগুলি সমন্বিত করে কণাগুলির একটি নির্ধারিত ভগ্নাংশের জন্য, প্রসেসরের উপর সমানভাবে বিতরণ করা পূর্বনির্মাণ প্রতিবেশী তালিকা ব্যবহার করে The এবংকণার মধ্যে জোড় মিথস্ক্রিয়া থেকে উত্থিত F i j , যা i এবং j উভয় কণার বেগের আপডেটের জন্য প্রয়োজনীয়, কেবল একবার গণনা করা হয় এবং অন্যান্য প্রসেসরের সাথে যোগাযোগ করা হয়। প্রতিটি প্রসেসর তার স্থানীয় স্মৃতিতে প্রয়োজনীয় স্থানাঙ্কগুলিতে স্টোরেজ সীমাবদ্ধ না করে সিস্টেমের সম্পূর্ণ সমন্বয় সেট রাখে। এটি সহজ এবং যোগাযোগ ওভারহেড সংরক্ষণ করে, যখন মেমরির দাবিটি সাধারণত মোটেই সীমাবদ্ধ ফ্যাক্টর নয়, এমনকি কয়েক মিলিয়ন কণার জন্যও। অন্যদিকে প্রতিবেশী তালিকাভুক্ত, যা কণার সংখ্যা থেকে 1000 গুণ বেশি থাকতে পারে, প্রসেসরের উপর বিতরণ করা হয়। প্রসেসরের রিংয়ের চারপাশে একবার সময় স্থানাঙ্ক এবং বাহিনী প্রেরণে যোগাযোগ মূলত সীমাবদ্ধ। এই পছন্দগুলি সময়ের সাথে দৃ .় এবং আধুনিক প্রসেসর ক্লাস্টারগুলিতে সহজেই প্রযোজ্য বলে প্রমাণিত হয়েছে "
"লিনিয়ার সিস্টেমের আকার" দ্বারা বাক্যটির অর্থ "ডোমেন পচন তখনই একটি ভাল পছন্দ যখন লিনিয়ার সিস্টেমের আকারটি পারস্পরিক মিথস্ক্রিয়াটির পরিমাণকে যথেষ্ট পরিমাণে ছাড়িয়ে যায়, যা আণবিক গতিবেগের ক্ষেত্রে খুব কমই দেখা যায়"? উপরের অনুচ্ছেদ থেকে, আমি ধারণা পেয়েছি যে কণা পচে যাওয়ার সুবিধা রয়েছে যে কোনও একটি ডোমেনের সীমানা পেরিয়ে কণার মোকাবেলা করতে হবে না; বরং, প্রতিটি সিস্টেমের মোট সিস্টেম কনফিগারেশন সংরক্ষণ করার জন্য আপনার কাছে পর্যাপ্ত মেমরি থাকতে হবে । সুতরাং কণা পচন খুব অনুকূল দেখায়, অন্যদিকে ডোমেন পচন খুব প্রতিকূল দেখাচ্ছে।
আমি নিশ্চিত যে এটি একটি খুব জটিল প্রশ্ন (এবং সম্ভবত অনেক বইয়ের বিষয়), তবে কেবলমাত্র মূলত, যদি কণা ক্ষয়টি খুব অনুকূল মনে হয় তবে কেন কারও ডোমেন পচন ব্যবহার করার প্রয়োজন হবে? যদি সিস্টেমের আকারটি খুব বড় হয় তবে (প্রতিটি প্রসেসরে মোট কনফিগারেশনটি সংরক্ষণ করা কঠিন বা অসম্ভব হয়ে উঠছে) যদি ডোমেন পচন কেবলমাত্র অনুকূল হয়? উপরের উদ্ধৃত অনুচ্ছেদের ভিত্তিতে, আমি নিশ্চিত নই যে ডোমেন পচন এখন কেন, গ্রোম্যাকসে ডিফল্ট সমান্তরালীনতা অ্যালগরিদম।
দেখে মনে হচ্ছে এখন DL_POLY (সংস্করণ 4) ডোমেন পচন ব্যবহার করে। সংস্করণ 4 ম্যানুয়াল থেকে:
"এই উপায়ে কনগ্রেশন ডেটার বিভাজনটি সিমুলেশন সেলটিতে অণুগুলির অবস্থানের উপর ভিত্তি করে তৈরি করা হয়, সিস্টেমের ডেটার যেমন একটি জ্যামিতিক বরাদ্দ ডিডি অ্যালগরিদমের বৈশিষ্ট্য Note নোট করুন যে এই কৌশলটি দক্ষতার সাথে কাজ করার জন্য, সিমুলেটেড সিস্টেমের অবশ্যই যুক্তিসঙ্গতভাবে অভিন্ন ঘনত্ব থাকতে হবে, যাতে প্রতিটি প্রসেসরকে পরমাণুর উপাত্তের প্রায় সমান অংশ (যতটা সম্ভব) বরাদ্দ করা হয় thisএ পদ্ধতির মাধ্যমে গতির সমীকরণগুলির গণনা এবং সংহতকরণকে বল প্রয়োগ করা হয় (যুক্তিসঙ্গতভাবে) প্রসেসর এবং সমানভাবে সমানভাবে ভাগ করা হয় প্রতিটি প্রসেসরের উপর বৃহত্তর পরিমাণে স্বাধীনভাবে গণনা করা যায় program পদ্ধতিটি প্রোগ্রামের পক্ষে কৌশলগত হলেও কৌশলগতভাবে সহজ এবং বিশেষত বৃহত আকারের সিমুলেশনগুলির জন্য উপযুক্ত, যেখানে দক্ষতা সর্বোচ্চ।
...
ডিডি কৌশলটির ক্ষেত্রে SHLE (RATTLE) অ্যালগোরিদম DL_POLY ক্লাসিকের প্রতিলিপিযুক্ত ডেটা পদ্ধতির চেয়ে সহজ, যেখানে অ্যাটম পজিশনের (মার্জিং এবং স্প্লাইকিং) গ্লোবাল আপডেট প্রয়োজন ""
এটি এটিকে শোনায় যেন ডোমেনের পচন ভাল কারণ এটি কার্যকর করা আরও কঠিন হলেও এটি আরও কার্যকর।
অন্যদিকে, পূর্ববর্তী সংস্করণ (DL_POLY Classic) প্রতিলিপিযুক্ত ডেটা প্যারালালাইজেশন ব্যবহার করেছে, যা কণা পচে যাওয়ার অপর নাম বলে মনে হয়। সংস্করণটির ম্যানুয়াল থেকে:
সিমুলেটেড সিস্টেমে পরমাণুগুলি প্রতিটি প্রসেসিং নোডে পুনরুত্পাদন করা হয়)। এই কৌশলটিতে বেশিরভাগ বাহিনীর গণনা এবং গতির সমীকরণগুলির সংহতকরণগুলি নোডগুলির মধ্যে সহজে এবং সমানভাবে ভাগ করা যায় এবং প্রতিটি নোডে বিস্তৃতভাবে স্বাধীনভাবে প্রক্রিয়াজাত করা যায়। পদ্ধতিটি প্রোগ্রামের তুলনায় তুলনামূলক সহজ এবং যুক্তিযুক্ত দক্ষ। তদতিরিক্ত, খুব সহজেই একটি একক প্রসেসরের উপর চালানো "ভেঙে পড়া" হতে পারে। তবে কৌশলটি মেমরির ক্ষেত্রে ব্যয়বহুল হতে পারে এবং উচ্চ যোগাযোগের ওভারহেড থাকতে পারে, তবে সামগ্রিকভাবে এটি অ্যাপ্লিকেশনগুলির বিস্তৃত পরিসরে সফল হতে প্রমাণিত হয়েছে।
এই অনুচ্ছেদটি সাধারণত এই প্রশ্নের প্রথম অনুচ্ছেদের সাথে সংবেদনশীল বলে মনে হয়, কেবল এটি ছাড়া যে প্রতিলিপিযুক্ত ডেটা / কণা পচন "উচ্চ যোগাযোগের ওভারহেডস" রয়েছে। গ্রোম্যাকস পেপারের অনুচ্ছেদে বিপরীতটি বলে মনে হচ্ছে - সেই কণা পচা পছন্দনীয় কারণ এটির ডোমেন পচানোর চেয়ে যোগাযোগের ওভারহেড কম রয়েছে।
আপনি কোনো চিন্তা আছে?