Parallel sorting algorithms for optimizing particle simulations

Real world particle simulation codes have to handle a huge number of particles and their interactions. Thus, parallel implementations are required to get suitable production codes. Parallel sorting is often used to organize the set of particles or to redistribute data for locality and load balancing concerns. In this article, the use and design of parallel sorting algorithms for parallel particle simulation codes are discussed. As a typical example, the particle simulation code PEPC is considered and a specific parallel sorting algorithm for this application is presented. The resulting parallel simulation code was implemented on an IBM Blue Gene/P system and corresponding performance results are shown.

[1]  Richard P. Brent,et al.  A General-Purpose Parallel Sorting Algorithm , 1995, Int. J. High Speed Comput..

[2]  Donald E. Knuth,et al.  The Art of Computer Programming: Volume 3: Sorting and Searching , 1998 .

[3]  Michael S. Warren,et al.  A portable parallel particle program , 1995 .

[4]  Toshio Nakatani,et al.  AA-Sort: A New Parallel Sorting Algorithm for Multi-Core SIMD Processors , 2007, 16th International Conference on Parallel Architecture and Compilation Techniques (PACT 2007).

[5]  Dongrui Fan,et al.  High performance comparison-based sorting algorithm on many-core GPUs , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS).

[6]  Piet Hut,et al.  A hierarchical O(N log N) force-calculation algorithm , 1986, Nature.

[7]  Pradeep Dubey,et al.  Efficient implementation of sorting on multi-core SIMD CPU architecture , 2008, Proc. VLDB Endow..

[8]  Jonathan Schaeffer,et al.  Parallel Sorting by Regular Sampling , 1992, J. Parallel Distributed Comput..

[9]  Paul Gibbon,et al.  Many-body tree methods in physics , 1996 .

[10]  Leslie Greengard,et al.  A fast algorithm for particle simulations , 1987 .

[11]  Laxmikant V. Kalé,et al.  Highly scalable parallel sorting , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS).

[12]  David J. DeWitt,et al.  A taxonomy of parallel sorting , 1984, CSUR.

[13]  M. V. Wilkes,et al.  The Art of Computer Programming, Volume 3, Sorting and Searching , 1974 .

[14]  Walid G. Aref,et al.  Analysis of Multi-Dimensional Space-Filling Curves , 2003, GeoInformatica.

[15]  Vitaly Osipov,et al.  GPU sample sort , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS).

[16]  Ibm Blue,et al.  Overview of the IBM Blue Gene/P Project , 2008, IBM J. Res. Dev..

[17]  Gudula Rünger,et al.  Library Support for Parallel Sorting in Scientific Computations , 2007, Euro-Par.

[18]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[19]  S. Lakshmivarahan,et al.  Parallel Sorting Algorithms , 1984, Adv. Comput..

[20]  R W Hockney,et al.  Computer Simulation Using Particles , 1966 .