Table of Contents
Fetching ...

The PLUTO Code on GPUs: A First Look at Eulerian MHD Methods

Marco Rossazza, Andrea Mignone, Matteo Bugli, Stefano Truzzi, Lubomir Riha, Tomas Panoc, Ondrej Vysocky, Nitin Shukla, Alessandro Romeo, Vittoria Berta

TL;DR

gPLUTO introduces a GPU-optimized, OpenACC-based rewrite of the PLUTO MHD code in C++, enabling efficient finite-volume MHD simulations on GPUs. It demonstrates strong and weak scaling on multiple HPC systems through 3D Orszag–Tang and circularly polarized Alfvén benchmarks, achieving roughly an order of magnitude per-node acceleration over CPU runs. The work also analyzes energy efficiency via GPU clock tuning, showing meaningful savings with small runtime overhead, and outlines future plans for broader physics modules and HPC portability. Collectively, the results indicate gPLUTO is well-positioned for exascale plasma simulations, combining performance, scalability, and energy-aware operation.

Abstract

We present preliminary performance results of gPLUTO, the new GPU-optimized implementation of the PLUTO code for computational plasma astrophysics. Like its predecessor, gPLUTO employs a finite-volume formulation to numerically solve the equations of magnetohydrodynamics (MHD) in multiple spatial dimensions. Still, this new implementation is a complete rewrite in C++ and leverages the OpenACC programming model to achieve acceleration on NVIDIA GPUs. While a more comprehensive description of the code and its several other modules will be presented in a future paper, here we focus on some preparatory results that demonstrate the code potential and performance on pre exa-scale parallel architectures.

The PLUTO Code on GPUs: A First Look at Eulerian MHD Methods

TL;DR

gPLUTO introduces a GPU-optimized, OpenACC-based rewrite of the PLUTO MHD code in C++, enabling efficient finite-volume MHD simulations on GPUs. It demonstrates strong and weak scaling on multiple HPC systems through 3D Orszag–Tang and circularly polarized Alfvén benchmarks, achieving roughly an order of magnitude per-node acceleration over CPU runs. The work also analyzes energy efficiency via GPU clock tuning, showing meaningful savings with small runtime overhead, and outlines future plans for broader physics modules and HPC portability. Collectively, the results indicate gPLUTO is well-positioned for exascale plasma simulations, combining performance, scalability, and energy-aware operation.

Abstract

We present preliminary performance results of gPLUTO, the new GPU-optimized implementation of the PLUTO code for computational plasma astrophysics. Like its predecessor, gPLUTO employs a finite-volume formulation to numerically solve the equations of magnetohydrodynamics (MHD) in multiple spatial dimensions. Still, this new implementation is a complete rewrite in C++ and leverages the OpenACC programming model to achieve acceleration on NVIDIA GPUs. While a more comprehensive description of the code and its several other modules will be presented in a future paper, here we focus on some preparatory results that demonstrate the code potential and performance on pre exa-scale parallel architectures.

Paper Structure

This paper contains 22 sections, 11 equations, 12 figures, 6 tables.

Figures (12)

  • Figure 1: Kernel accelerated with a compute directive.
  • Figure 2: Computation of the right-hand side contribution along the x-direction.
  • Figure 3: Templated Riemann Solver. Three version of the routine are compiled with different values of the direction of integration dir: IDIR, JDIR, KDIR
  • Figure 4: Asynchronous implementation of the parallel data exchange routine.
  • Figure 5: Weak scaling results for the 3D Orszag-Tang on MareNostrum 5 ACC, MeluXina GPU nodes and Leonardo (Booster and DCGP).
  • ...and 7 more figures