GOTHIC: Gravitational oct-tree code accelerated by hierarchical time
  step controlling
  The tree method is a widely implemented algorithm for collisionless $N$-body
simulations in astrophysics well suited for GPU(s). Adopting hierarchical time
stepping can accelerate $N$-body simulations; however, it is infrequently
implemented and its potential remains untested in GPU implementations. We have
developed a Gravitational Oct-Tree code accelerated by HIerarchical time step
Controlling named \texttt{GOTHIC}, which adopts both the tree method and the
hierarchical time step. The code adopts some adaptive optimizations by
monitoring the execution time of each function on-the-fly and minimizes the
time-to-solution by balancing the measured time of multiple functions. Results
of performance measurements with realistic particle distribution performed on
NVIDIA Tesla M2090, K20X, and GeForce GTX TITAN X, which are representative
GPUs of the Fermi, Kepler, and Maxwell generation of GPUs, show that the
hierarchical time step achieves a speedup by a factor of around 3--5 times
compared to the shared time step. The measured elapsed time per step of
\texttt{GOTHIC} is 0.30~s or 0.44~s on GTX TITAN X when the particle
distribution represents the Andromeda galaxy or the NFW sphere, respectively,
with $2^{24} =$~16,777,216 particles. The averaged performance of the code
corresponds to 10--30\% of the theoretical single precision peak performance of
the GPU.
