'Repa' performance for planetary simulation
 I have written a simulation of the outer planets of the solar system using the Euler symplectic method and implemented this a) using repa and b) using yarr .  
 yarr seems to perform about x30 quicker than repa .  
 Given this, I didn't even try to use parallelism.  Is there any obvious performance problems in my repa code?  The repository is at github.  I can produce a cut-down repa -only version if this is helpful, but then you won't get the performance comparison against yarr .  
 Alternatively, how do I debug performance issues in repa ?  
Most Euler numeric integration methods suffer from cumulative round-off error that will eventually cause the simulation to "blow up". You may want to investigate advanced numerical integration methods, such as 4th-order Runge-Kutta or predictor-corrector.
Another place where n-body problem simulations become sticky is when two bodies get very close, such as a moon with a very eccentric orbit about its planet. If one uses fixed time increments for the simulation, the error during large changes of angular velocity can lead to division-by-zero errors or division by very small values that result in the simulation blowing up. Use of a variable delta-t that depends on the angular velocity can be beneficial.
These suggestions are based on running many such simulations as a project for an undergraduate physics course I took in 1973, while testing various numerical integration methods. Runge-Kutta and predictor corrector methods have been around since the dawn of digital computing and a number of books are available. See, eg, Numerical Recipes: The Art of Scientific Computing by William H. Press, Brian P. Flannery, Saul A. Teukolsky and William T. Vetterling. (Cambridge University Press, 1989)
链接地址: http://www.djcxy.com/p/59980.html上一篇: 许多并行应用程序的顺序转换在维修
下一篇: 用于行星模拟的'修复'性能
