NBody Simulation - 适当的设计方法

时间:2012-12-05 08:25:24

标签: database cuda opencl cpu gpu

我有一个问题,我将会有一堆身体 - 每个身体的运动都是由现有数据预先描述的,但是当一个身体处于另一个身体的范围内时,它的某些属性会发生变化。为了这个问题,我们假设你每个身体都有一个计数器来计算你在其他身体周围的时间。所以基本上你从t = 0开始,你在身体2周围花了5秒钟,所以你的t现在是5.我想知道我应该采取什么样的最佳方式,我还没有数据,但我只是想知道我是否适合探索像CUDA / OpenCL这样的东西,或者我应该坚持在多核cpu机器上进行优化。因为这将被模拟的数据量大约是500个物体,每个物体在30天的时间段内被描述为第二个物体,因此每个物体的数据量为43200点。

1 个答案:

答案 0 :(得分:4)

Brute force nbody绝对适合GPU,因为它“令人尴尬地平行”。每个身体 - 身体交互计算完全独立于任何其他。你的变化包括跟踪在其他身体“存在”中花费的时间,这将是对现有身体到身体力量计算的直接补充,因为无论如何一切都是在时间步长基础上完成的。

Here's some sample CUDA code for nbody