TY - JOUR
T1 - Swarm-NG
T2 - A CUDA library for Parallel n-body Integrations with focus on simulations of planetary systems
AU - Dindar, Saleh
AU - Ford, Eric B.
AU - Juric, Mario
AU - Yeo, Young In
AU - Gao, Jianwei
AU - Boley, Aaron C.
AU - Nelson, Benjamin
AU - Peters, Jörg
N1 - Funding Information:
We thank Alice Quillen, as well as Mark Harris and David Luebke of NVIDIA Corp. for helpful discussions about implementing and optimizing CUDA code. We thank Craig Warner and Ying Zhang for helping to improve the organization and documentation of the Swarm-NG code. We thank Jeroen Bédorf, Sourav Chatterjee, Constanze Rödig and Mariusz Slonina for helping to test early versions of Swarm-NG. E.B.F. acknowledges the Lorentz Center for their hospitality and facilitating collaborations that helped improve Swarm-NG. This research was supported by NASA Applied Information Systems Research Program Grant NNX09AM41G. The authors acknowledge the University of Florida Research Foundation’s Research Opportunity Seed Fund for supporting the early stages of this research. The authors acknowledge the University of Florida High-Performance Computing Center for providing computational resources and support that have contributed to the research results reported within this paper.
PY - 2013
Y1 - 2013
N2 - We present Swarm-NG, a C++ library for the efficient direct integration of many n-body systems using a Graphics Processing Unit (GPU), such as NVIDIA's Tesla T10 and M2070 GPUs. While previous studies have demonstrated the benefit of GPUs for n-body simulations with thousands to millions of bodies, Swarm-NG focuses on many few-body systems, e.g., thousands of systems with 3...15 bodies each, as is typical for the study of planetary systems. Swarm-NG parallelizes the simulation, including both the numerical integration of the equations of motion and the evaluation of forces using NVIDIA's "Compute Unified Device Architecture" (CUDA) on the GPU. Swarm-NG includes optimized implementations of 4th order time-symmetrized Hermite integration and mixed variable symplectic integration, as well as several sample codes for other algorithms to illustrate how non-CUDA-savvy users may themselves introduce customized integrators into the Swarm-NG framework. To optimize performance, we analyze the effect of GPU-specific parameters on performance under double precision. For an ensemble of 131072 planetary systems, each containing three bodies, the NVIDIA Tesla M2070 GPU outperforms a 6-core Intel Xeon X5675 CPU by a factor of ∼2.75. Thus, we conclude that modern GPUs offer an attractive alternative to a cluster of CPUs for the integration of an ensemble of many few-body systems. Applications of Swarm-NG include studying the late stages of planet formation, testing the stability of planetary systems and evaluating the goodness-of-fit between many planetary system models and observations of extrasolar planet host stars (e.g., radial velocity, astrometry, transit timing). While Swarm-NG focuses on the parallel integration of many planetary systems, the underlying integrators could be applied to a wide variety of problems that require repeatedly integrating a set of ordinary differential equations many times using different initial conditions and/or parameter values.
AB - We present Swarm-NG, a C++ library for the efficient direct integration of many n-body systems using a Graphics Processing Unit (GPU), such as NVIDIA's Tesla T10 and M2070 GPUs. While previous studies have demonstrated the benefit of GPUs for n-body simulations with thousands to millions of bodies, Swarm-NG focuses on many few-body systems, e.g., thousands of systems with 3...15 bodies each, as is typical for the study of planetary systems. Swarm-NG parallelizes the simulation, including both the numerical integration of the equations of motion and the evaluation of forces using NVIDIA's "Compute Unified Device Architecture" (CUDA) on the GPU. Swarm-NG includes optimized implementations of 4th order time-symmetrized Hermite integration and mixed variable symplectic integration, as well as several sample codes for other algorithms to illustrate how non-CUDA-savvy users may themselves introduce customized integrators into the Swarm-NG framework. To optimize performance, we analyze the effect of GPU-specific parameters on performance under double precision. For an ensemble of 131072 planetary systems, each containing three bodies, the NVIDIA Tesla M2070 GPU outperforms a 6-core Intel Xeon X5675 CPU by a factor of ∼2.75. Thus, we conclude that modern GPUs offer an attractive alternative to a cluster of CPUs for the integration of an ensemble of many few-body systems. Applications of Swarm-NG include studying the late stages of planet formation, testing the stability of planetary systems and evaluating the goodness-of-fit between many planetary system models and observations of extrasolar planet host stars (e.g., radial velocity, astrometry, transit timing). While Swarm-NG focuses on the parallel integration of many planetary systems, the underlying integrators could be applied to a wide variety of problems that require repeatedly integrating a set of ordinary differential equations many times using different initial conditions and/or parameter values.
UR - http://www.scopus.com/inward/record.url?scp=84875153732&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84875153732&partnerID=8YFLogxK
U2 - 10.1016/j.newast.2013.01.002
DO - 10.1016/j.newast.2013.01.002
M3 - Article
AN - SCOPUS:84875153732
SN - 1384-1076
VL - 23-24
SP - 6
EP - 18
JO - New Astronomy
JF - New Astronomy
ER -