Yanıtlar:
Çok çeşitli algoritmalar var; Barnes Hut popüler bir yöntemidir ve Hızlı Çoklu Kutup Yöntemi çok daha sofistike bir O ( N ) alternatifidir.
Her iki yöntem de, düğümlerin temel olarak yalnızca ağacın her bir seviyesindeki en yakın komşularıyla etkileşime girdiği bir ağaç veri yapısını kullanır; ağacı kümeleri arasında yeterli derinlikte bölmeyi ve sonra sadece en üst düzeyde işbirliği yapmayı düşünebilirsiniz.
Petastagram makinelerinde FMM ile ilgili son makaleleri burada bulabilirsiniz .
Bak hızlı kutuplu yöntemle . Oldukça ölçeklenebilir ve . Hassasiyet ve maliyet arasında işlem yapmanıza olanak sağlar. İşte bir GPU kümesinde 42 Tflops'ta çalıştırıldığı bir örnek .
Alternatif bir kaynak olarak, meş tabanlı Ewald benzeri yöntemlere de bakabilirsiniz. "Parçacık ağı" yöntemlerinin (PPPM ve düzleştirilmiş parçacık ağı Ewald gibi) oluşması astrofizik için gökadaların simülasyonunda yatmaktadır; Masraflara olan bağlantı istenmeyen bir yan etkiye yol açıyordu (en sonunda orijinal kullanımı geçiyordu).
Daha yakın zamanlarda, hızlı çok kutuplu yöntemlere ve Barnes-Hut'a ruhu olan çok düzeyli toplama yöntemleriyle ilgili bazı literatürler de var , ancak farklı koşullarda avantajlar sunabilir (daha genel ve esnek geometriler, bazı verimlilik kazanımları, vb.).
İçin klasik yerçekimsel n-beden problemi , şu iki kağıtları kuvvet değerlendirme aşaması için paralel uygulama cesareti tartışırken iyi bir iş yaptığımızı düşünüyoruz. Makaleler bir GPU uygulamasını tartışmasına rağmen, paralelliğin tartışılmasında ve algoritmaların ayrıntılarının sağlanmasında iyi bir iş çıkarır:
Nyland, Harris ve Prins tarafından yayınlanan bu makale , GPU'lar için CUDA'da doğrudan n-vücut algoritmasını sunmaktadır.
Yokota ve Barba'nın bu diğer makalesi , GPU-hesaplama bağlamında da ağaç kodu ve hızlı çoklu kutup algoritması hakkında iyi bir tartışma yürütüyor.
N-vücut sayısal simülasyonlarının doğruluğu hakkındaki sorularınız biraz daha fazla ve bir cevabı birkaç kitapta ortaya çıkarabilecek kadar önemli detaylar var. Bence yapılacak en iyi şey birkaç kitap referansı vermek. Öneririm:
Gravitasyonel N-vücut Simülasyonları , Sverre J. Aarseth
Hockney ve Eastwood'un parçacıklarını kullanarak bilgisayar simülasyonları . (Üzgünüz pdf sürümü yok)
Asimptotik anlamda en uygun olmayan basit bir uygulama yaklaşımına ihtiyacınız varsa, tüm toplama iletişim işlemlerini kullanmayı düşünebilirsiniz. N bedenlerinin her biri diğer bedenlerin yerçekimi etkisini bilmesi gerektiğinden, her işlemcinin tüm veri setini bilmesi önemlidir. Bütün toplanma işlemlerinin yaptığı şey budur. İyi bir kitap var: Bu konuyu tam olarak sayfa 82'de tartışan Michael J. Quinn (2004) tarafından MPI ve OPENMP ile C'de Paralel Programlama. Size bir başlangıç yapmaya değebilir.