Title: GPU acceleration and performance of the particle-beam-dynamics code Elegant,
Abstract: Elegant is an accelerator physics and particle-beam dynamics code widely used
for modeling and design of a variety of high-energy particle accelerators and
accelerator-based systems. In this paper we discuss a recently developed
version of the code that can take advantage of CUDA-enabled graphics processing
units (GPUs) to achieve significantly improved performance for a large class of
simulations that are important in practice. The GPU version is largely defined
by a framework that simplifies implementations of the fundamental kernel types
that are used by Elegant: particle operations, reductions, particle loss,
histograms, array convolutions and random number generation. Accelerated
performance on the Titan Cray XK-7 supercomputer is approximately 6-10 times
better with the GPU than all the CPU cores associated with the same node count.
In addition to performance, the maintainability of the GPU-accelerated version
of the code was considered a key design objective. Accuracy with respect to the
CPU implementation is also a core consideration. Four different methods are
used to ensure that the accelerated code faithfully reproduces the CPU results.