A Multi-GPU Python Solver for Low-Temperature Non-Equilibrium Plasmas

  • James Almgren-Bell The University of Texas at Austin
  • Nader Al Awar The University of Texas at Austin
  • Dilip S Geethakrishnan The University of Texas at Austin
  • Milos Gligoric The University of Texas at Austin
  • George Biros The University of Texas at Austin

Resumo


The collisional Boltzmann kinetic equations for low-temperature plasmas find important applications in industry, for example semiconductor processing. Particle-in-cell (PIC) methods are the state-of-the art solvers for such problems, but they can be quite expensive. We present GPU acceleration of PIC codes and ways to increase programming productivity for rapid prototyping and algorithmic exploration. First, we present algorithms that minimize data movement and take advantage of modern GPU architectures. Second, we discuss their HPC implementation using Python-based productivity tools: CuPy, Numba, and PyKokkos. We analyze their performance, interoperability, portability, and overheads. We present performance analysis, comparing different algorithms for the main computational kernels. On a single GPU we observe 1.4ns/particle/time step. We also report scaling results on up to 16 NVIDIA Volta V100 GPUs using MPI.
Palavras-chave: Boltzmann, plasma, glow discharge, Kokkos, GPU, Numba, Python, HPC, particle-in-cell methods
Publicado
02/11/2022
ALMGREN-BELL, James; AWAR, Nader Al; GEETHAKRISHNAN, Dilip S; GLIGORIC, Milos; BIROS, George. A Multi-GPU Python Solver for Low-Temperature Non-Equilibrium Plasmas. In: INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING (SBAC-PAD), 34. , 2022, Bordeaux/France. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2022 . p. 140-149.