A sparse octree gravitational N-body code that runs entirely on the GPU processor

  • Authors:
  • Jeroen Bédorf;Evghenii Gaburov;Simon Portegies Zwart

  • Affiliations:
  • Leiden Observatory, Leiden University, P.O. Box 9513, 2300 RA Leiden, The Netherlands;Northwestern University, 2131 Tech Drive, Evanston 60208, IL, USA and Leiden Observatory, Leiden University, P.O. Box 9513, 2300 RA Leiden, The Netherlands;Leiden Observatory, Leiden University, P.O. Box 9513, 2300 RA Leiden, The Netherlands

  • Venue:
  • Journal of Computational Physics
  • Year:
  • 2012

Quantified Score

Hi-index 31.45

Visualization

Abstract

We present the implementation and performance of a new gravitational N-body tree-code that is specifically designed for the graphics processing unit (GPU). All parts of the tree-code algorithm are executed on the GPU. We present algorithms for parallel construction and traversing of sparse octrees. These algorithms are implemented in CUDA and tested on NVIDIA GPUs, but they are portable to OpenCL and can easily be used on many-core devices from other manufacturers. This portability is achieved by using general parallel-scan and sort methods. The gravitational tree-code outperforms tuned CPU code during the tree-construction and shows a performance improvement of more than a factor 20 overall, resulting in a processing rate of more than 2.8 million particles per second.