답변:
다양한 알고리즘이 있습니다. Barnes Hut 는 널리 사용되는 방법이며 Fast Multipole Method 는 훨씬 더 복잡한 대안입니다.
두 방법 모두 노드가 기본적으로 각 트리 레벨에서 가장 가까운 이웃과 만 상호 작용하는 트리 데이터 구조를 사용합니다. 프로세스 세트간에 트리를 충분한 깊이로 분할 한 다음 최상위 레벨에서만 협력하도록 생각할 수 있습니다.
페타 스케일 기계에 관한 FMM에 관한 최근 논문은 여기 에서 찾을 수 있습니다 .
상기 봐 빠른 다극 방법 . 확장 성이 뛰어나고 입니다. 정밀도와 비용의 균형을 유지합니다. 다음은 GPU 클러스터에서 42 Tflops에서 실행되는 예 입니다.
대체 소스로서 메쉬 기반 Ewald와 유사한 방법을 볼 수도 있습니다. "입자 메쉬"방법 (PPPM 및 평활 입자 메쉬 Ewald와 같은)의 기원은 천체 물리학에 대한 은하의 시뮬레이션에있다. 청구와의 연결은 의도하지 않은 부작용이었습니다.
보다 최근에는 빠른 다중 극 방법 및 반스-헛과 유사한 다중 수준 합산 방법 에 대한 문헌 이 있지만 다른 환경 (더 일반적이고 유연한 형상, 일부 효율성 향상 등)에서 이점을 제공 할 수 있습니다.
위해 고전 중력 다체 문제 , 나는 다음과 같은 두 가지 서류가 힘 평가 단계에 대한 병렬 구현의 내장을 논의에서 좋은 일을 생각한다. 이 논문은 GPU 구현에 대해 설명하지만 병렬 처리에 대해 잘 알고 알고리즘에 대한 세부 정보를 제공합니다.
Nyland, Harris 및 Prins 의이 백서 는 GPU 용 CUDA의 직접적인 n-body 알고리즘을 제시합니다.
이 다른 종이 요코타와 BARBA로도 GPU 컴퓨팅의 맥락에서 treecode 빠른 다극 알고리즘의에 좋은 토론이있다
n-body 수치 시뮬레이션 의 정확성에 대한 귀하의 질문은 조금 더 복잡하며 답이 여러 권의 책을 낳을 수있는 중요한 세부 정보가 많이 있습니다. 가장 좋은 방법은 몇 권의 책을 참고하는 것입니다. 나는 제안한다 :
Sverre J. Aarseth의 중력 N- 바디 시뮬레이션
Hockney와 Eastwood의 입자 를 사용한 컴퓨터 시뮬레이션 . (죄송합니다 PDF 버전 없음)
점근 적 의미에서 최적이 아닌 간단한 구현 방법이 필요한 경우 전체 수집 통신 작업을 사용하는 것이 좋습니다. 각 N- 본체는 다른 신체의 중력 효과를 알아야하므로 모든 프로세서가 전체 데이터 세트를 아는 것이 중요합니다. 이것이 모든 수집 작업입니다. 좋은 책이 있습니다 : Michael J. Quinn (2004)의 MPI 및 OPENMP를 사용한 C의 병렬 프로그래밍 (2004)은이 주제에 대해 82 페이지에서 설명합니다. 시작하기 위해 살펴볼 가치가 있습니다.