我有一个问题,我将有一组n-身体的运动是预先描述的现有数据,然而,当身体是在另一个范围内的某些属性,它改变。为了这个问题,我们假设你的每个身体都有一个计数器,可以计算你在其他身体周围的时间。所以基本上你从t=0开始,在身体2周围花5秒,所以你的t现在是5。我想知道最好的方法是什么,我还没有数据,但我只是想知道是否适合我探索像cuda/opencl这样的东西,或者我应该坚持在多核cpu机器上优化它。因为这将被模拟的数据量大约是500个物体,每个物体在30天内都有向下描述到第二个物体的运动,所以这是每个物体43200个数据点。
最佳答案
暴力NBody绝对适合GPU,因为它是“令人尴尬的平行”。每个体与体之间的交互计算完全独立于任何其他计算。你的变化,包括跟踪在其他物体的“存在”中花费的时间,将是对现有身体到身体力量计算的一个简单的补充,因为无论如何都是按时间步长的基础来完成的。
Here's some sample CUDA code for nbody。