CSC/ECE 506 Spring 2011/ch4a zz: Difference between revisions
Line 11: | Line 11: | ||
== Parallel N-body problem == | == Parallel N-body problem == | ||
Since each particle will interact with others by the force of gravity, the simulation of N-body system is computationally expensive for large numbers of N. There a O(N<sup>2</sup>) interactions to compute for every iteration. Furthermore, in order to have a accurate result, the discrete time step must relatively small. | Since each particle will interact with others by the force of gravity, the simulation of N-body system is computationally expensive for large numbers of N. There a O(N<sup>2</sup>) interactions to compute for every iteration. Furthermore, in order to have a accurate result, the discrete time step must relatively small. Thus, there has been a huge interest in faster parallel algorithm for N-body problem. | ||
=== data-parallel === | === data-parallel === | ||
In 1985, Appel took the first step of decomposes the problem by introducing a tree structure. His data-parallel algorithm reduced the order time of the algorithm from ''O''(''N''<sup>2</sup>) to ''O''(''N''log''N''). In next year, Barnes and Hut proposed a | |||
=== shared-memory === | === shared-memory === |
Revision as of 01:30, 28 February 2011
Introduction
The N-body problem stated as follows: Select the position and velocity of n celestial bodies as states. Given the initial condition of of N bodies, compute their states at arbitrary time T. Normally a three-dimensional space is considered for N-body problem. There is a simplified N-body problem called restricted N-body problem where the mass of some of the bodies is negligible. Several remarkable three-body simulation can be found in [1].
Many mathematicians have proofed that it is impossible to find a general solution for n-body problem analytically[2][3]. The system could become unstable very easily. However, the problem can be solved numerically. The most common approach is to iterate over a sequence of small time steps. Within each time step, the acceleration on a body is approximated by the transient acceleration in the pervious time step. The transient acceleration on a single body can be directly computed by summing the gravity from each of the other N-1 bodies. While this method is conceptually simple and is the algorithm of choice for many applications, its O(N2)
The simulation of N-body system can be used from simulation of celestial bodies (gravitational interaction)to interactions of a set of particles (electromagnetic interaction).
Parallel N-body problem
Since each particle will interact with others by the force of gravity, the simulation of N-body system is computationally expensive for large numbers of N. There a O(N2) interactions to compute for every iteration. Furthermore, in order to have a accurate result, the discrete time step must relatively small. Thus, there has been a huge interest in faster parallel algorithm for N-body problem.
data-parallel
In 1985, Appel took the first step of decomposes the problem by introducing a tree structure. His data-parallel algorithm reduced the order time of the algorithm from O(N2) to O(NlogN). In next year, Barnes and Hut proposed a
message-passing
References
[1] [1] Collection of remarkable three-body motions
[2][[2]] something about Poincaré
[3] Diacu, F (01/01/1996). "The solution of the n-body problem". The Mathematical intelligencer (0343-6993), 18 (3), p. 66.
[4] Barnes. Josh, Hut. Piet, (12/04/1986). "A hierarchical O(N log N) force-calculation algorithm". Nature (London) (0028-0836), 324 (6096), p. 446.