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

Abstract

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.
Published
2022-11-02
How to Cite
ALMGREN-BELL, James et al. A Multi-GPU Python Solver for Low-Temperature Non-Equilibrium Plasmas. Proceedings of the International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD), [S.l.], p. 140-149, nov. 2022. ISSN 0000-0000. Available at: <https://sol.sbc.org.br/index.php/sbac-pad/article/view/28241>. Date accessed: 17 may 2024.