ปัญหา n-body ความโน้มถ่วงสามารถแก้ไขเป็นตัวเลขแบบขนานได้อย่างไร?
การแลกเปลี่ยนความซับซ้อนที่มีความแม่นยำเป็นไปได้หรือไม่?
ความแม่นยำมีอิทธิพลต่อคุณภาพของรุ่นอย่างไร
ปัญหา n-body ความโน้มถ่วงสามารถแก้ไขเป็นตัวเลขแบบขนานได้อย่างไร?
การแลกเปลี่ยนความซับซ้อนที่มีความแม่นยำเป็นไปได้หรือไม่?
ความแม่นยำมีอิทธิพลต่อคุณภาพของรุ่นอย่างไร
คำตอบ:
มีอัลกอริทึมหลากหลาย บาร์นส์ฮัทเป็นที่นิยมวิธีการและวิธี multipole ด่วนเป็นมากความซับซ้อนมากขึ้นทางเลือก
ทั้งสองวิธีใช้ประโยชน์จากโครงสร้างข้อมูลแบบต้นไม้ที่โหนดมีปฏิสัมพันธ์กับเพื่อนบ้านที่ใกล้ที่สุดในแต่ละระดับของต้นไม้เท่านั้น คุณสามารถนึกถึงการแยกต้นไม้ระหว่างชุดของกระบวนการในระดับความลึกที่เพียงพอและจากนั้นให้พวกเขาให้ความร่วมมือในระดับสูงสุดเท่านั้น
คุณสามารถค้นหากระดาษที่ผ่านการอภิปราย FMM บนเครื่อง petascale ที่นี่
ดูที่วิธี multipole รวดเร็ว มันสามารถปรับได้สูงและ(n) อนุญาตให้ทำการซื้อขายระหว่างความแม่นยำและค่าใช้จ่าย นี่คือตัวอย่างซึ่งจะมีการทำงานที่ 42 Tflops ในคลัสเตอร์
ในฐานะที่เป็นแหล่งข้อมูลทางเลือกคุณสามารถดูวิธีการคล้าย Ewald แบบอิงตาข่าย การกำเนิดของ "อนุภาคตาข่าย" (เช่น PPPM และอนุภาคตาข่ายเรียบวาลด์) ตั้งอยู่ในแบบจำลองของกาแล็กซีสำหรับฟิสิกส์ดาราศาสตร์; การเชื่อมต่อกับค่าธรรมเนียมเป็นผลข้างเคียงโดยไม่ได้ตั้งใจ (ซึ่งเพิ่งเกิดขึ้นกับการใช้งานดั้งเดิมในที่สุด)
เมื่อไม่นานมานี้มีวรรณกรรมเกี่ยวกับวิธีการรวมหลายระดับซึ่งคล้ายกับวิธีการหลายอย่างรวดเร็วและบาร์นส์ - ฮัท แต่อาจเสนอข้อได้เปรียบในสถานการณ์ที่แตกต่างกัน (รูปทรงเรขาคณิตทั่วไปที่ยืดหยุ่นและยืดหยุ่น
สำหรับปัญหา n-body ความโน้มถ่วงแบบคลาสสิกฉันคิดว่าบทความสองข้อต่อไปนี้ทำงานได้ดีในการพูดคุยเกี่ยวกับความกล้าในการใช้งานแบบขนานสำหรับขั้นตอนการประเมินแรง แม้ว่าเอกสารจะกล่าวถึงการใช้ GPU พวกเขาทำได้ดีในการพูดคุยเรื่องความขนานและให้รายละเอียดของอัลกอริทึม:
บทความนี้โดย Nyland, Harris และ Prins นำเสนออัลกอริธึม n-body โดยตรงใน CUDA สำหรับ GPU
นี้กระดาษอื่น ๆโดยโยโกตะและ Barba มีการสนทนาที่ดีบนของ treecode และอัลกอริทึม multipole รวดเร็วนอกจากนี้ยังมีในบริบทของ GPU-คอมพิวเตอร์
คำถามของคุณเกี่ยวกับความถูกต้องของการจำลองเชิงตัวเลขของ n-bodyนั้นมีส่วนเกี่ยวข้องมากกว่าและมีรายละเอียดที่สำคัญมากมายที่คำตอบสามารถวางไข่หนังสือหลายเล่มได้ ฉันคิดว่าสิ่งที่ดีที่สุดที่ควรทำคือให้หนังสืออ้างอิงถึงคุณ ฉันแนะนำ:
การจำลอง N-body ความโน้มถ่วงโดย Sverre J. Aarseth
แบบจำลองคอมพิวเตอร์โดยใช้อนุภาคโดย Hockney และ Eastwood (ขออภัยไม่มีรุ่น PDF)
หากคุณต้องการวิธีการนำไปปฏิบัติที่เรียบง่ายซึ่งไม่เหมาะสมในแง่ของความรู้สึกเชิงซีติคคุณอาจต้องการใช้การสื่อสารที่รวบรวมได้ทั้งหมด เนื่องจากแต่ละ N-bodies ต้องรู้ถึงผลกระทบความโน้มถ่วงของวัตถุอื่นมันจึงเป็นสิ่งสำคัญที่หน่วยประมวลผลทุกคนต้องรู้ชุดข้อมูลทั้งหมด นี่คือสิ่งที่การดำเนินการรวบรวมทั้งหมดทำ มีหนังสือดีๆเล่มหนึ่ง: การเขียนโปรแกรมแบบขนานใน C กับ MPI และ OPENMP โดย Michael J. Quinn (2004) ซึ่งกล่าวถึงหัวข้อนี้ในหน้า 82 อย่างแน่นอนมันอาจคุ้มค่าที่จะเริ่มต้นกับคุณ