อะไรคือข้อดีและข้อเสียของการสลายตัวของอนุภาคและอัลกอริธึมการสลายตัวแบบขนานของโดเมนคืออะไร?


15

ฉันใช้การจำลองแบบโมเลกุล (MD) โดยใช้ซอฟต์แวร์หลายชุดเช่น Gromacs และ DL_POLY

ขณะนี้Gromacสนับสนุนการสลายตัวของอนุภาคและอัลกอริธึมการสลายตัวของโดเมน ตามค่าเริ่มต้นการจำลอง Gromacs ใช้การสลายตัวของโดเมนแม้ว่าจะเป็นเวลาหลายปีจนกระทั่งเมื่อเร็ว ๆ นี้การสลายตัวของอนุภาคเป็นวิธีการเดียวที่นำมาใช้ใน Gromacs ในหนึ่งในเอกสาร Gromacs (DOI 10.1002 / jcc.20291) ผู้เขียนให้เหตุผลในการเลือกการสลายตัวของอนุภาคเริ่มต้น:

"การตัดสินใจออกแบบช่วงแรกคือทางเลือกในการทำงานกับการสลายตัวของอนุภาคมากกว่าการสลายตัวของโดเมนเพื่อแจกจ่ายงานผ่านโปรเซสเซอร์ในกรณีหลังโดเมนเชิงพื้นที่ได้รับมอบหมายให้โปรเซสเซอร์ซึ่งช่วยให้สามารถค้นหาเพื่อนบ้านเชิงพื้นที่ได้อย่างรวดเร็วโดยการสื่อสารในท้องถิ่นเท่านั้น ไปยังอนุภาคที่เคลื่อนที่ผ่านขอบเขตเชิงพื้นที่มีความสำคัญการสลายตัวของโดเมนเป็นตัวเลือกที่ดีกว่าเมื่อขนาดของระบบเชิงเส้นมีขนาดใหญ่กว่าช่วงของการปฏิสัมพันธ์ซึ่งไม่ค่อยเกิดขึ้นในกรณีของการเคลื่อนที่ของโมเลกุลด้วยการสลายตัวของอนุภาคแต่ละตัวประมวลผล สำหรับเศษส่วนที่กำหนดของอนุภาคโดยใช้รายการเพื่อนบ้านที่คำนวณล่วงหน้าอย่างเท่าเทียมกันกระจายไปทั่วโปรเซสเซอร์FผมJเกิดขึ้นจากการทำงานร่วมกันระหว่างอนุภาค และซึ่งจำเป็นสำหรับการปรับปรุงความเร็วของทั้งอนุภาคและ ผมJผมJถูกคำนวณเพียงครั้งเดียวและสื่อสารกับโปรเซสเซอร์อื่น ๆ โปรเซสเซอร์ทุกตัวจะเก็บชุดพิกัดที่สมบูรณ์ของระบบไว้ในหน่วยความจำภายในของมันแทนที่จะ จำกัด ที่เก็บข้อมูลให้ตรงกับความต้องการ สิ่งนี้ง่ายกว่าและประหยัดค่าใช้จ่ายในการสื่อสารในขณะที่การอ้างสิทธิ์หน่วยความจำมักไม่ได้เป็นปัจจัย จำกัด แม้แต่กับอนุภาคหลายล้านตัว ในทางกลับกันเพื่อนบ้านซึ่งสามารถบรรจุอนุภาคได้มากถึง 1,000 เท่าของจำนวนนั้นจะถูกกระจายไปทั่วโปรเซสเซอร์ การสื่อสารนั้น จำกัด การส่งพิกัดและแรงหนึ่งครั้งต่อรอบวงแหวนโปรเซสเซอร์ ตัวเลือกเหล่านี้ได้รับการพิสูจน์แล้วว่ามีความแข็งแกร่งเมื่อเวลาผ่านไปและสามารถใช้กับกลุ่มโปรเซสเซอร์ที่ทันสมัยได้อย่างง่ายดาย "

พวกเขาหมายถึงอะไรโดย "ขนาดของระบบเชิงเส้น" ในประโยค "การสลายตัวของโดเมนเป็นตัวเลือกที่ดีกว่าเฉพาะเมื่อขนาดของระบบเชิงเส้นมีขนาดใหญ่เกินขอบเขตของการปฏิสัมพันธ์ซึ่งไม่ค่อยเกิดขึ้นในโมเลกุล" จากย่อหน้าข้างต้นฉันได้รับแนวคิดว่าการสลายตัวของอนุภาคมีข้อดีที่ไม่ต้องจัดการกับอนุภาคที่เคลื่อนที่ข้ามขอบเขตของโดเมน แต่คุณต้องมีหน่วยความจำเพียงพอสำหรับโปรเซสเซอร์แต่ละตัวเพื่อจัดเก็บการกำหนดค่าระบบทั้งหมด ดังนั้นการสลายตัวของอนุภาคจึงดูดีมากในขณะที่การสลายตัวของโดเมนดูไม่ดีนัก

ฉันแน่ใจว่านี่เป็นคำถามที่ซับซ้อนมาก (และอาจเป็นเรื่องของหนังสือหลายเล่ม) แต่โดยทั่วไปแล้วหากการสลายตัวของอนุภาคดูดีมากทำไมทุกคนต้องใช้การย่อยสลายโดเมน การย่อยสลายโดเมนเป็นสิ่งที่ดีหรือไม่ถ้าขนาดของระบบมีขนาดใหญ่มาก (ทำให้ยากหรือเป็นไปไม่ได้ในการจัดเก็บการกำหนดค่าทั้งหมดในโปรเซสเซอร์แต่ละตัว) จากย่อหน้าที่ยกมาข้างต้นฉันไม่แน่ใจว่าทำไมการสลายตัวของโดเมนคือเมื่อเร็ว ๆ นี้อัลกอริทึมการขนานแบบเริ่มต้นใน Gromacs

ดูเหมือนว่าตอนนี้DL_POLY (เวอร์ชัน 4) จะใช้การแยกโดเมนด้วยเช่นกัน จากคู่มือเวอร์ชัน 4:

"การแบ่งข้อมูล conguration ด้วยวิธีนี้ขึ้นอยู่กับตำแหน่งของอะตอมในเซลล์จำลองการจัดสรรทางเรขาคณิตของข้อมูลระบบเป็นจุดเด่นของอัลกอริทึม DD โปรดทราบว่าเพื่อให้กลยุทธ์นี้ทำงานได้อย่างมีประสิทธิภาพจำลอง ระบบจะต้องมีความหนาแน่นสม่ำเสมอพอสมควรดังนั้นตัวประมวลผลแต่ละตัวจะจัดสรรเกือบเท่ากันของข้อมูลอะตอม (เท่าที่เป็นไปได้) ด้วยวิธีการนี้การคำนวณกองกำลังและการรวมของสมการการเคลื่อนที่จะถูกใช้ร่วมกัน ในระดับใหญ่สามารถคำนวณได้อย่างอิสระในโปรเซสเซอร์แต่ละตัววิธีการนี้เป็นแนวคิดที่เรียบง่าย แต่มีความยุ่งยากในการเขียนโปรแกรมและเหมาะอย่างยิ่งกับการจำลองขนาดใหญ่ที่มีประสิทธิภาพสูงสุด

...

ในกรณีของกลยุทธ์ DD อัลกอริทึม SHAKE (RATTLE) นั้นง่ายกว่าวิธี Replicated Data ของ DL_POLY Classic ซึ่งจำเป็นต้องมีการอัปเดตตำแหน่งอะตอม (การรวมและการประกบ) ทั่วโลก "

สิ่งนี้ทำให้ดูเหมือนว่าการแยกโดเมนเป็นสิ่งที่ดีเพราะอาจมีประสิทธิภาพมากกว่าแม้ว่าอาจจะยากกว่าในการนำไปใช้

ในทางกลับกันเวอร์ชันก่อนหน้า (DL_POLY Classic) ใช้การจำลองข้อมูลแบบขนานซึ่งดูเหมือนจะเป็นอีกชื่อหนึ่งสำหรับการสลายตัวของอนุภาค จากคู่มือของรุ่นนั้น:

กลยุทธ์การทำซ้ำข้อมูล (RD) เป็นหนึ่งในหลายวิธีในการบรรลุการขนานใน MD ชื่อของมันมาจากการจำลองแบบของข้อมูลการกำหนดค่าในแต่ละโหนดของคอมพิวเตอร์แบบขนาน (เช่นอาร์เรย์ที่กำหนดพิกัดอะตอม , ความเร็ว , และแรงสำหรับ ทั้งหมดRผมโวลต์ผมผมยังไม่มีข้อความอะตอมในระบบจำลองจะทำซ้ำในทุกโหนดการประมวลผล) ในกลยุทธ์นี้ส่วนใหญ่ของการคำนวณแรงและการรวมของสมการการเคลื่อนที่สามารถใช้ร่วมกันได้อย่างง่ายดายและเท่าเทียมกันระหว่างโหนดและในระดับใหญ่จะถูกประมวลผลอย่างอิสระในแต่ละโหนด วิธีนี้ค่อนข้างง่ายต่อการโปรแกรมและมีประสิทธิภาพพอสมควร นอกจากนี้ยังสามารถ“ ยุบ” เพื่อเรียกใช้บนโปรเซสเซอร์เดียวได้อย่างง่ายดาย อย่างไรก็ตามกลยุทธ์อาจมีราคาแพงในหน่วยความจำและมีค่าใช้จ่ายในการสื่อสารสูง แต่โดยรวมแล้วได้พิสูจน์แล้วว่าประสบความสำเร็จในการใช้งานที่หลากหลาย

ย่อหน้านี้โดยทั่วไปดูเหมือนจะสอดคล้องกับย่อหน้าแรกในคำถามนี้ยกเว้นว่ามันบอกว่าการสลายตัวของข้อมูล / อนุภาคที่ทำซ้ำมี "ค่าใช้จ่ายในการสื่อสารสูง" ย่อหน้าจากกระดาษ Gromacs ดูเหมือนว่าจะตรงกันข้าม - การสลายตัวของอนุภาคเป็นที่นิยมเพราะมันมีค่าใช้จ่ายในการสื่อสารที่ต่ำกว่าการสลายตัวของโดเมน

คุณมีความคิดใด ๆ

คำตอบ:


10

การสลายตัวของอนุภาคและโดเมนเชื่อมต่อโดยตรงกับสองวิธีหลักในการเร่งการคำนวณแรงสำหรับระบบที่มีการ จำกัด ช่วงปฏิสัมพันธ์ - รายชื่อเพื่อนบ้าน Verlet และรายการเชื่อมโยงเซลล์ หากคุณต้องการทราบรายละเอียดมีหนังสือดีๆเล่มหนึ่งจากอัลเลนและทิลเลสลีย์ที่เรียกว่าการจำลองด้วยคอมพิวเตอร์ของของเหลวซึ่งหลายคนคิดว่าเป็น "พระคัมภีร์" ของการศึกษาระดับโมเลกุลและมอนติคาร์โล จากนั้นก็มีการจำลองเชิงตัวเลขในโมเลกุลระดับโมเลกุลจาก Griebel, Knapek และ Zumbusch ที่ลึกลงไปในเทคนิคต่าง ๆ สำหรับการใช้งานแบบขนานของ MD

โดยพื้นฐาน Verlet list จะสร้างรายการเพื่อนบ้านทั้งหมดของอะตอม / โมเลกุลที่กำหนด (หรืออนุภาคโดยทั่วไป) ภายในรัศมีที่กำหนด ต่อมาเมื่อมีการตรวจสอบคู่ของอะตอมเพื่อคำนวณแรงรายการจะถูกนำมาพิจารณา เมื่อคุณสร้างรายการขึ้นมาจะเห็นได้ชัดว่ามีอนุภาคใดที่อยู่ใกล้กับอนุภาคอื่นและสามารถกระจายตัวประมวลผลต่าง ๆ เพื่อการประเมินผลได้ รายการถูกสร้างขึ้นทุก ๆ คราวแล้วด้วยเทคนิคที่ชาญฉลาดเพื่อให้ทันสมัยอยู่เสมอเนื่องจากใช้ในการสร้าง (ตรวจสอบปารีสทั้งหมดของอนุภาคที่เป็นไปได้) การประเมินผลการกองทัพได้รับรายการที่สร้างแล้วใช้เวลา(N)O(ยังไม่มีข้อความ2)O(ยังไม่มีข้อความ)

รายการที่เชื่อมโยงเซลล์แบ่งช่องว่างในเซลล์ขนาดเท่า ๆ กันที่มีขนาดใหญ่กว่าระยะทางที่ตัดออกของศักยภาพในการเกิดปฏิกิริยาจากนั้นแต่ละอนุภาคจะอยู่ในรายการที่เกี่ยวข้องกับเซลล์ที่มันตกลงมา กระบวนการนี้ใช้เวลา(N) จากนั้นเพื่อนบ้านของอนุภาคที่ระบุจะค้นหาเฉพาะในเซลล์เดียวกันหรือในเซลล์เพื่อนบ้าน เนื่องจากแต่ละเซลล์มีจำนวนคงที่ของเพื่อนบ้าน (เช่น 26 ในกรณีที่ 3-D) กองกำลังได้รับการประเมินใน(N) แต่ที่นี่ตัวคูณคงที่อาจมีขนาดใหญ่พอที่จะทำให้อัลกอริทึมนี้ขยายขนาดได้แย่กว่าเมธอด Verlet list แต่สำหรับขนาดใหญ่พอที่O(ยังไม่มีข้อความ)O(ยังไม่มีข้อความ) ยังไม่มีข้อความมันชั่งดีกว่า ดังนั้นอาร์กิวเมนต์ขนาดเชิงเส้น วิธีการสลายตัวโดเมนเป็นส่วนขยายตรงไปตรงมาของวิธีการเชื่อมโยงรายการเซลล์ - เซลล์จะถูกแบ่งระหว่างซีพียูที่แตกต่างกัน

ปัญหาของการสลายตัวของโดเมนคือมันต้องสื่อสารเมื่ออนุภาคเคลื่อนที่จากเซลล์หนึ่งไปยังอีกเซลล์หนึ่งซึ่งได้รับการดูแลจากซีพียูอื่น สิ่งนี้อาจกลายเป็นปัญหาได้ที่อุณหภูมิการจำลองที่สูงกว่าซึ่งอนุภาคมีแนวโน้มที่จะเคลื่อนที่ออกไปไกลกว่าตำแหน่งสมดุลหรือเมื่อมีการไหลของอนุภาค ข้อมูลจากเซลล์บนเส้นขอบโดเมนจะต้องถูกถ่ายโอนในแต่ละการวนซ้ำไปยังโดเมนที่อยู่ใกล้เคียง แต่ทั้งหมดนี้เป็นการสื่อสารแบบซิงโครนัสในพื้นที่และสามารถทำได้อย่างมีประสิทธิภาพ

ข้อมูลที่ทำซ้ำเป็นวิธีที่ง่ายที่สุด แต่น่าเสียดายที่มันต้องการข้อมูลทุกตำแหน่งและความเร็วในการซิงค์ทั่วโลก สิ่งนี้ไม่ได้ปรับขนาดได้ดีและสำหรับระบบที่มีขนาดใหญ่มากหน่วยความจำระดับโลกคือขนาดของโครงสร้างข้อมูลคูณจำนวนของ CPU ที่ใช้ในขณะที่หนึ่งในเป้าหมายของการประมวลผลแบบขนานคือการกระจายข้อมูลเช่น CPU แต่ละตัวมีน้อยกว่าปริมาณข้อมูลทั่วโลก

โดยสรุปไม่มีวิธี "หนึ่งขนาดที่เหมาะกับทุกคน" ซึ่งเหมาะสำหรับระบบทั้งหมดที่กำลังจำลอง ส่วนใหญ่กลยุทธ์การขนานที่ดีที่สุดสามารถอนุมานได้จากเรขาคณิตของระบบและเหมาะสมสำหรับรหัส MD กรณีนั้นสามารถเลือกได้ - พวกเขาทั้งหมดใช้ฟิลด์บังคับพื้นฐานและตัวรวมที่น้อยกว่าเดิม


คำตอบที่ดี! เป็นเรื่องปกติที่จะมีการกระจายตัวของอะตอมที่สม่ำเสมอหรือไม่? มันทำงานเหมือนกันสำหรับการแจกแจงแบบไม่สม่ำเสมอหรือไม่?
fcruz

3
ขึ้นอยู่กับระบบที่กำลังจำลอง ถ้ามันเป็นของเหลวแก๊สหรือผลึกขนาดใหญ่อะตอมก็จะมีการกระจายน้อยลงอย่างสม่ำเสมอ หากมีเฟสหรือมวลรวมของอนุภาคแปลเป็นอย่างมาก - น้อยกว่านั้น สำหรับการกระจายที่ไม่สม่ำเสมอการสลายตัวของโดเมนอาจมีประสิทธิภาพน้อยกว่าเว้นแต่จะมีวิธีการปรับตัวบางอย่าง
Hristo Iliev

2
O(ยังไม่มีข้อความ2)O(ยังไม่มีข้อความเข้าสู่ระบบยังไม่มีข้อความ)โอRO(ยังไม่มีข้อความ)

4

โดย "การสลายตัวของโดเมนเป็นตัวเลือกที่ดีกว่าเฉพาะเมื่อขนาดของระบบเชิงเส้นเกินกว่าช่วงของการทำงานร่วมกันซึ่งไม่ค่อยเกิดขึ้นในระดับโมเลกุล" ผู้เขียนของกระดาษ GROMACS (เก่ามาก) นั้นหมายความว่าถ้าขนาดเชิงพื้นที่ของรายการเพื่อนบ้านคือ ของคำสั่งของ 1 นาโนเมตรและเซลล์การจำลองเป็นเพียงนาโนเมตรหลาย ๆ ค่าโสหุ้ยจากการทำโดเมนสลายตัวสูงเกินไป คุณอาจยอมรับการกระจายข้อมูลแบบ all-to-all ทั้งหมดในการสลายตัวของอนุภาคและไม่จำเป็นต้องใช้เวลากับการเก็บหนังสือทั้งหมดสำหรับการย่อยสลายโดเมน

ปัญหาเกี่ยวกับการสลายตัวของอนุภาคในขณะที่ GROMACS นำมาใช้ก็คือเมื่อเวลาผ่านไปอนุภาคที่กำหนดให้กับโปรเซสเซอร์แต่ละตัวจะกระจายไปทั่วอวกาศ เนื่องจากความรับผิดชอบในการคำนวณการโต้ตอบแต่ละครั้งได้รับการแก้ไขโดยตำแหน่งเริ่มต้นของพวกเขาการแพร่กระจายเพิ่มปริมาณของพื้นที่ทั้งหมดที่โปรเซสเซอร์แต่ละตัวต้องรู้เพื่อสร้างรายการเพื่อนบ้านแม้ว่าการคำนวณทั้งหมดที่อธิบายโดยรายการเพื่อนบ้านนั้นคงที่ ในทางปฏิบัติคุณจะต้องเริ่มการจำลองเป็นระยะ ๆ เพื่อรีเซ็ตข้อมูลและตำแหน่งการสื่อสาร

ข้อสันนิษฐานของคุณที่ว่า "การสลายตัวของอนุภาคมีความได้เปรียบที่ไม่มีการจัดการกับอนุภาคที่เคลื่อนที่ข้ามขอบเขตของโดเมน" ไม่ถือถ้าการแพร่กระจายมีความสำคัญในช่วงเวลาของการจำลอง

การแบ่งแยกโดเมนเกี่ยวข้องกับ "เบื้องหน้า" นี้โดยการโอนย้ายความรับผิดชอบสำหรับการโต้ตอบพร้อมกับการแพร่กระจายซึ่งจะช่วยปรับปรุงตำแหน่งข้อมูลในโปรเซสเซอร์แต่ละตัวและลดปริมาณการสื่อสาร

คำเตือน: ฉันช่วยพัฒนา GROMACS และอาจจะทำให้การใช้งานการสลายตัวของอนุภาคในสัปดาห์หน้า ;-)


0

ฉันต้องการเพิ่มคำตอบของ Hristo Iliev ในขณะที่โพสต์ของเขาส่วนใหญ่พูดถึงความซับซ้อนของการคำนวณเมื่อพูดถึงการทำให้เป็นคู่ขนานความซับซ้อนของการสื่อสารนั้นมีความสำคัญน้อยกว่าและเป็นเหตุผลหลักสำหรับการย่อยสลายโดเมน

เครื่องขนานที่ทันสมัยมักจะมีทอรัสทอพอโลยี ซึ่งหมายความว่า CPU แต่ละตัวมีจำนวนซีพียู "ใกล้เคียง" ที่สามารถสื่อสารกับมันได้อย่างรวดเร็ว การสื่อสารกับ CPU ที่ไม่ใช่เพื่อนบ้านนั้นมีค่าใช้จ่ายสูงกว่า ดังนั้นจึงเป็นสิ่งที่ดีเสมอที่จะมีอัลกอริทึมที่ต้องการสื่อสารกับ CPU ใกล้เคียงเท่านั้น

PO(P2)

PO(P)

O(P)

อย่างไรก็ตามโปรดทราบว่าระบบที่ไม่เหมือนกันนั้นไม่เหมือนกันอย่างที่มันฟังดูเกิดขึ้นเมื่อทำการจำลองบางอย่างในสุญญากาศหรือเมื่อใช้ตัวทำละลายโดยปริยาย ความหนาแน่นของผลึกและของเหลวอยู่ใกล้พอที่จะเรียกใช้การสลายตัวของโดเมน


นี่เป็นคำตอบที่ดีมาก ฉันแค่อยากจะเพิ่มความแม่นยำ การจำลองการไหลของเม็ดซึ่งใช้วิธีการขึ้นอยู่กับ MD-เช่นอัลกอริทึม (เช่นวิธีการองค์ประกอบแบบไม่ต่อเนื่อง) มักจะพบกรณีที่คุณมีภูมิภาคซึ่งเกือบจะเป็นโมฆะของอนุภาคและอื่น ๆ ที่เต็มไปด้วยพวกเขา ...
พูดมาก

แน่นอนว่ามันไม่ได้เป็นข้อกำหนดของการสลายตัวของอนุภาคที่มีการกระจายตัวของปฏิกริยาแบบสุ่ม หนึ่งสามารถและบ่อยครั้งที่ควรเริ่มต้นด้วยการสลายตัวเป็นกลุ่มอนุภาคขนาดกะทัดรัดเชิงพื้นที่เพราะพวกเขาจะแบ่งปันเพื่อนบ้านมีปฏิสัมพันธ์ร่วมกัน การแพร่กระจายในที่สุดจะหมายถึงการกระจายแบบสุ่ม นั่นคือเหตุผลที่ GROMACS ทำการจำลองการสลายตัวของอนุภาคที่กล่าวถึงข้างต้นจะเริ่มใหม่เป็นระยะเพื่อรีเฟรชตำแหน่งของการสลายตัว
mabraham
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.