ฉันใช้การจำลองแบบโมเลกุล (MD) โดยใช้ซอฟต์แวร์หลายชุดเช่น Gromacs และ DL_POLY
ขณะนี้Gromacสนับสนุนการสลายตัวของอนุภาคและอัลกอริธึมการสลายตัวของโดเมน ตามค่าเริ่มต้นการจำลอง Gromacs ใช้การสลายตัวของโดเมนแม้ว่าจะเป็นเวลาหลายปีจนกระทั่งเมื่อเร็ว ๆ นี้การสลายตัวของอนุภาคเป็นวิธีการเดียวที่นำมาใช้ใน Gromacs ในหนึ่งในเอกสาร Gromacs (DOI 10.1002 / jcc.20291) ผู้เขียนให้เหตุผลในการเลือกการสลายตัวของอนุภาคเริ่มต้น:
"การตัดสินใจออกแบบช่วงแรกคือทางเลือกในการทำงานกับการสลายตัวของอนุภาคมากกว่าการสลายตัวของโดเมนเพื่อแจกจ่ายงานผ่านโปรเซสเซอร์ในกรณีหลังโดเมนเชิงพื้นที่ได้รับมอบหมายให้โปรเซสเซอร์ซึ่งช่วยให้สามารถค้นหาเพื่อนบ้านเชิงพื้นที่ได้อย่างรวดเร็วโดยการสื่อสารในท้องถิ่นเท่านั้น ไปยังอนุภาคที่เคลื่อนที่ผ่านขอบเขตเชิงพื้นที่มีความสำคัญการสลายตัวของโดเมนเป็นตัวเลือกที่ดีกว่าเมื่อขนาดของระบบเชิงเส้นมีขนาดใหญ่กว่าช่วงของการปฏิสัมพันธ์ซึ่งไม่ค่อยเกิดขึ้นในกรณีของการเคลื่อนที่ของโมเลกุลด้วยการสลายตัวของอนุภาคแต่ละตัวประมวลผล สำหรับเศษส่วนที่กำหนดของอนุภาคโดยใช้รายการเพื่อนบ้านที่คำนวณล่วงหน้าอย่างเท่าเทียมกันกระจายไปทั่วโปรเซสเซอร์เกิดขึ้นจากการทำงานร่วมกันระหว่างอนุภาค และซึ่งจำเป็นสำหรับการปรับปรุงความเร็วของทั้งอนุภาคและ ถูกคำนวณเพียงครั้งเดียวและสื่อสารกับโปรเซสเซอร์อื่น ๆ โปรเซสเซอร์ทุกตัวจะเก็บชุดพิกัดที่สมบูรณ์ของระบบไว้ในหน่วยความจำภายในของมันแทนที่จะ จำกัด ที่เก็บข้อมูลให้ตรงกับความต้องการ สิ่งนี้ง่ายกว่าและประหยัดค่าใช้จ่ายในการสื่อสารในขณะที่การอ้างสิทธิ์หน่วยความจำมักไม่ได้เป็นปัจจัย จำกัด แม้แต่กับอนุภาคหลายล้านตัว ในทางกลับกันเพื่อนบ้านซึ่งสามารถบรรจุอนุภาคได้มากถึง 1,000 เท่าของจำนวนนั้นจะถูกกระจายไปทั่วโปรเซสเซอร์ การสื่อสารนั้น จำกัด การส่งพิกัดและแรงหนึ่งครั้งต่อรอบวงแหวนโปรเซสเซอร์ ตัวเลือกเหล่านี้ได้รับการพิสูจน์แล้วว่ามีความแข็งแกร่งเมื่อเวลาผ่านไปและสามารถใช้กับกลุ่มโปรเซสเซอร์ที่ทันสมัยได้อย่างง่ายดาย "
พวกเขาหมายถึงอะไรโดย "ขนาดของระบบเชิงเส้น" ในประโยค "การสลายตัวของโดเมนเป็นตัวเลือกที่ดีกว่าเฉพาะเมื่อขนาดของระบบเชิงเส้นมีขนาดใหญ่เกินขอบเขตของการปฏิสัมพันธ์ซึ่งไม่ค่อยเกิดขึ้นในโมเลกุล" จากย่อหน้าข้างต้นฉันได้รับแนวคิดว่าการสลายตัวของอนุภาคมีข้อดีที่ไม่ต้องจัดการกับอนุภาคที่เคลื่อนที่ข้ามขอบเขตของโดเมน แต่คุณต้องมีหน่วยความจำเพียงพอสำหรับโปรเซสเซอร์แต่ละตัวเพื่อจัดเก็บการกำหนดค่าระบบทั้งหมด ดังนั้นการสลายตัวของอนุภาคจึงดูดีมากในขณะที่การสลายตัวของโดเมนดูไม่ดีนัก
ฉันแน่ใจว่านี่เป็นคำถามที่ซับซ้อนมาก (และอาจเป็นเรื่องของหนังสือหลายเล่ม) แต่โดยทั่วไปแล้วหากการสลายตัวของอนุภาคดูดีมากทำไมทุกคนต้องใช้การย่อยสลายโดเมน การย่อยสลายโดเมนเป็นสิ่งที่ดีหรือไม่ถ้าขนาดของระบบมีขนาดใหญ่มาก (ทำให้ยากหรือเป็นไปไม่ได้ในการจัดเก็บการกำหนดค่าทั้งหมดในโปรเซสเซอร์แต่ละตัว) จากย่อหน้าที่ยกมาข้างต้นฉันไม่แน่ใจว่าทำไมการสลายตัวของโดเมนคือเมื่อเร็ว ๆ นี้อัลกอริทึมการขนานแบบเริ่มต้นใน Gromacs
ดูเหมือนว่าตอนนี้DL_POLY (เวอร์ชัน 4) จะใช้การแยกโดเมนด้วยเช่นกัน จากคู่มือเวอร์ชัน 4:
"การแบ่งข้อมูล conguration ด้วยวิธีนี้ขึ้นอยู่กับตำแหน่งของอะตอมในเซลล์จำลองการจัดสรรทางเรขาคณิตของข้อมูลระบบเป็นจุดเด่นของอัลกอริทึม DD โปรดทราบว่าเพื่อให้กลยุทธ์นี้ทำงานได้อย่างมีประสิทธิภาพจำลอง ระบบจะต้องมีความหนาแน่นสม่ำเสมอพอสมควรดังนั้นตัวประมวลผลแต่ละตัวจะจัดสรรเกือบเท่ากันของข้อมูลอะตอม (เท่าที่เป็นไปได้) ด้วยวิธีการนี้การคำนวณกองกำลังและการรวมของสมการการเคลื่อนที่จะถูกใช้ร่วมกัน ในระดับใหญ่สามารถคำนวณได้อย่างอิสระในโปรเซสเซอร์แต่ละตัววิธีการนี้เป็นแนวคิดที่เรียบง่าย แต่มีความยุ่งยากในการเขียนโปรแกรมและเหมาะอย่างยิ่งกับการจำลองขนาดใหญ่ที่มีประสิทธิภาพสูงสุด
...
ในกรณีของกลยุทธ์ DD อัลกอริทึม SHAKE (RATTLE) นั้นง่ายกว่าวิธี Replicated Data ของ DL_POLY Classic ซึ่งจำเป็นต้องมีการอัปเดตตำแหน่งอะตอม (การรวมและการประกบ) ทั่วโลก "
สิ่งนี้ทำให้ดูเหมือนว่าการแยกโดเมนเป็นสิ่งที่ดีเพราะอาจมีประสิทธิภาพมากกว่าแม้ว่าอาจจะยากกว่าในการนำไปใช้
ในทางกลับกันเวอร์ชันก่อนหน้า (DL_POLY Classic) ใช้การจำลองข้อมูลแบบขนานซึ่งดูเหมือนจะเป็นอีกชื่อหนึ่งสำหรับการสลายตัวของอนุภาค จากคู่มือของรุ่นนั้น:
กลยุทธ์การทำซ้ำข้อมูล (RD) เป็นหนึ่งในหลายวิธีในการบรรลุการขนานใน MD ชื่อของมันมาจากการจำลองแบบของข้อมูลการกำหนดค่าในแต่ละโหนดของคอมพิวเตอร์แบบขนาน (เช่นอาร์เรย์ที่กำหนดพิกัดอะตอม , ความเร็ว , และแรงสำหรับ ทั้งหมดอะตอมในระบบจำลองจะทำซ้ำในทุกโหนดการประมวลผล) ในกลยุทธ์นี้ส่วนใหญ่ของการคำนวณแรงและการรวมของสมการการเคลื่อนที่สามารถใช้ร่วมกันได้อย่างง่ายดายและเท่าเทียมกันระหว่างโหนดและในระดับใหญ่จะถูกประมวลผลอย่างอิสระในแต่ละโหนด วิธีนี้ค่อนข้างง่ายต่อการโปรแกรมและมีประสิทธิภาพพอสมควร นอกจากนี้ยังสามารถ“ ยุบ” เพื่อเรียกใช้บนโปรเซสเซอร์เดียวได้อย่างง่ายดาย อย่างไรก็ตามกลยุทธ์อาจมีราคาแพงในหน่วยความจำและมีค่าใช้จ่ายในการสื่อสารสูง แต่โดยรวมแล้วได้พิสูจน์แล้วว่าประสบความสำเร็จในการใช้งานที่หลากหลาย
ย่อหน้านี้โดยทั่วไปดูเหมือนจะสอดคล้องกับย่อหน้าแรกในคำถามนี้ยกเว้นว่ามันบอกว่าการสลายตัวของข้อมูล / อนุภาคที่ทำซ้ำมี "ค่าใช้จ่ายในการสื่อสารสูง" ย่อหน้าจากกระดาษ Gromacs ดูเหมือนว่าจะตรงกันข้าม - การสลายตัวของอนุภาคเป็นที่นิยมเพราะมันมีค่าใช้จ่ายในการสื่อสารที่ต่ำกว่าการสลายตัวของโดเมน
คุณมีความคิดใด ๆ