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

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 PI...

Full description

Saved in:
Bibliographic Details
Published inProceedings (Symposium on Computer Architecture and High Performance Computing) pp. 140 - 149
Main Authors Almgren-Bell, James, Awar, Nader Al, Geethakrishnan, Dilip S, Gligoric, Milos, Biros, George
Format Conference Proceeding
LanguageEnglish
Published IEEE 01.11.2022
Subjects
Online AccessGet full text
ISSN2643-3001
DOI10.1109/SBAC-PAD55451.2022.00025

Cover

More Information
Summary: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.
ISSN:2643-3001
DOI:10.1109/SBAC-PAD55451.2022.00025