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.
- Publication:
-
arXiv e-prints
- Pub Date:
- October 2017
- DOI:
- arXiv:
- arXiv:1710.07350
- Bibcode:
- 2017arXiv171007350K
- Keywords:
-
- Physics - Computational Physics;
- Physics - Accelerator Physics
- E-Print:
- Comput. Phys. Commun. 235 (2019) 346-355