Câu trả lời:
Có rất nhiều thuật toán; Barnes Hut là một phương pháp phổ biến và Phương pháp đa cực nhanh là một phương pháp thay thế O ( N ) phức tạp hơn nhiều .
Cả hai phương pháp đều sử dụng cấu trúc dữ liệu cây trong đó các nút về cơ bản chỉ tương tác với các lân cận gần nhất của chúng ở mỗi cấp độ của cây; bạn có thể nghĩ đến việc tách cây giữa tập hợp các quy trình ở độ sâu đủ, và sau đó để chúng chỉ hợp tác ở mức cao nhất.
Bạn có thể tìm thấy một bài báo gần đây thảo luận về FMM trên các máy petascale tại đây .
Nhìn vào phương pháp đa cực nhanh . Nó có khả năng mở rộng cao và . Nó cho phép giao dịch giữa độ chính xác và chi phí. Đây là một ví dụ nơi nó được chạy ở 42 Tflops trên cụm GPU .
Là một nguồn thay thế, bạn cũng có thể xem xét các phương pháp giống như Ewald dựa trên lưới. Nguồn gốc của các phương pháp "lưới hạt" (như PPPM và lưới hạt mịn Ewald) nằm trong mô phỏng các thiên hà cho vật lý thiên văn; kết nối với các khoản phí là một tác dụng phụ không chủ ý (điều đó vừa xảy ra cuối cùng đã vượt qua mức sử dụng ban đầu).
Gần đây, cũng có một số tài liệu về các phương pháp tổng hợp đa cấp gần giống với phương pháp đa cực nhanh và Barnes-Hut, nhưng có thể mang lại lợi thế trong các trường hợp khác nhau (hình học tổng quát và linh hoạt hơn, tăng hiệu quả, v.v.).
Đối với bài toán cơ thể hấp dẫn cổ điển , tôi nghĩ hai bài báo sau đây làm tốt công việc thảo luận về can đảm của việc thực hiện song song cho bước đánh giá lực. Mặc dù các bài viết thảo luận về việc triển khai GPU, nhưng họ làm rất tốt khi thảo luận về tính song song và cung cấp chi tiết về các thuật toán:
Bài viết này của Nyland, Harris và Prins trình bày thuật toán n-body trực tiếp trong CUDA cho GPU.
Bài báo khác của Yokota và Barba có một cuộc thảo luận tốt về thuật toán treecode và đa cực nhanh cũng trong bối cảnh điện toán GPU
Các câu hỏi của bạn về tính chính xác của mô phỏng số n-body có liên quan nhiều hơn một chút và có rất nhiều chi tiết quan trọng mà một câu trả lời có thể sinh ra một vài cuốn sách. Tôi nghĩ rằng tốt nhất nên làm là cung cấp cho bạn một vài tài liệu tham khảo. Tôi đề nghị:
Mô phỏng cơ thể N hấp dẫn của Sverre J. Aarseth
Mô phỏng máy tính sử dụng các hạt của Hockney và Eastwood. (Xin lỗi không có phiên bản pdf)
Nếu bạn cần một cách tiếp cận thực hiện đơn giản mà không tối ưu theo nghĩa tiệm cận, bạn có thể muốn xem xét sử dụng tất cả các hoạt động giao tiếp tập hợp. Vì mỗi cơ thể N cần biết hiệu ứng hấp dẫn của các cơ thể khác, điều quan trọng là mọi bộ xử lý phải biết toàn bộ dữ liệu. Đây là những gì tất cả các hoạt động thu thập làm. Có một cuốn sách hay: Lập trình song song bằng C với MPI và OPENMP của Michael J. Quinn (2004) thảo luận chính xác chủ đề này ở trang 82. Có thể đáng để xem xét để cho bạn bắt đầu.