  We present Swarm-NG, a C++ library for the efficient direct integration of
many n-body systems using highly-parallel 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.
  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.
