Multi-threaded acceleration of ORBIT code on CPU and GPU with minimal modifications
POSTER
Abstract
The guiding center code ORBIT [1] was originally developed 30 years ago to study the drift orbit effects of charged particles in the strong equilibrium magnetic fields of tokamaks. Today, ORBIT remains a very active tool in magnetic confinement fusion research and continues to adapt to the latest toroidal devices, such as the NSTX-Upgrade, for which it plays a very important role in the study of energetic particle effects. Although the capabilities of ORBIT have improved throughout the years, the code still remains a serial application, which has now become an impediment to the lengthy simulations required for the NSTX-U project. In this work, multi-threaded parallelism is introduced in the core of the code with the goal of achieving the largest performance improvement while minimizing changes made to the source code. To that end, we introduce preprocessor directives in the most compute-intensive parts of the code, which constitute the stable core that seldom changes. Standard OpenMP directives are used for shared-memory CPU multi-threading while newly developed OpenACC (www.openacc.org) directives are used for GPU (Graphical Processing Unit) multi-threading. Implementation details and performance results are presented.\\[4pt] [1] R.B. White and M.S. Chance, Phys. Fluids 27, 2455 (1984)
Authors
-
Ante Qu
Princeton University
-
Stephane Ethier
PPPL
-
Eliot Feibush
PPPL
-
Roscoe White
PPPL, Princeton University