2012-12-05 60 views
1

我有一個問題,我將有一堆nbodies - 每個的運動是由現有數據預先描述的,但是當一個物體在另一個物體的範圍內時,它的某些特性會發生變化。爲了這個問題,我們假設你每個身體都有一個計數器來計算你在其他身體周圍的時間。所以基本上你以t = 0開始,你在身體2周圍花了5秒,所以你的t現在是5.我想知道什麼是我應該去做的最好的方式,我還沒有數據,但我只是想知道是否適合我探索像CUDA/OpenCL之類的東西,還是應該堅持在多核cpu機器上優化它。因爲這將被模擬的數據量大約爲500個物體,每個物體的運動在30天內被描述爲秒數,因此每個物體的數據爲43200個點。NBody模擬 - 適當的設計方法

+0

您可以在NVIDIA和AMD SDK中找到NBody項目。在這裏英特爾示例:http://software.intel.com/en-us/vcsource/samples/opencl-cross-devices-nbody-simulation-sample –

回答

3

蠻力nbody絕對適合GPU,因爲它是「令人尷尬的並行」。每個身體對身體的交互計算是完全獨立於任何其他。包括跟蹤在其他機構「存在」中花費的時間的變化對於現有的身體對身體的力量計算來說是直接的補充,因爲無論如何,所有事情都是按照時間步驟完成的。

Here's some sample CUDA code for nbody