Hostname: page-component-74656f9884-kv2lp Total loading time: 0 Render date: 2026-11-06T00:20:32.524Z Has data issue: false hasContentIssue false

GPU-MPI parallelisation for QuickPIC, a three-dimensional quasi-static particle-in-cell algorithm

Published online by Cambridge University Press:  28 July 2026

Yueran Tian
Affiliation:
School of Physics and Astronomy, Beijing Normal University, No. 19, Xinjiekouwai St., Haidian District, Beijing 100875, PR China
Yueluo Wang
Affiliation:
School of Physics and Astronomy, Beijing Normal University, No. 19, Xinjiekouwai St., Haidian District, Beijing 100875, PR China Department of Astronomy, Peking University, No. 5, Yiheyuan Road, Haidian District, Beijing 100871, PR China
Thamine Dalichaouch
Affiliation:
Department of Physics and Astronomy, University of California Los Angeles, Los Angeles, CA 90095-1547, USA
Viktor Decyk
Affiliation:
Department of Physics and Astronomy, University of California Los Angeles, Los Angeles, CA 90095-1547, USA
Frank S. Tsung
Affiliation:
Department of Physics and Astronomy, University of California Los Angeles, Los Angeles, CA 90095-1547, USA
Warren B. Mori
Affiliation:
Department of Physics and Astronomy, University of California Los Angeles, Los Angeles, CA 90095-1547, USA Department of Electrical and Computer Engineering, University of California Los Angeles, Los Angeles, CA 90095-1547, USA
Weiming An*
Affiliation:
School of Physics and Astronomy, Beijing Normal University, No. 19, Xinjiekouwai St., Haidian District, Beijing 100875, PR China Institute for Frontiers in Astronomy and Astrophysics, Beijing Normal University, Changping District, Beijing 102206, PR China
*
Corresponding author: Weiming An, anweiming@bnu.edu.cn

Abstract

QuickPIC is a quasi-static PIC program for simulating plasma wakefield acceleration. It supports a hybrid parallel simulation on multiple central processing units via OpenMP and message passing interface (MPI). We now present a version of QuickPIC that runs on graphics processing units (GPU), with MPI for communication between different GPUs, based on the UCLA Parallel Partice-In-Cell framework. By rewriting relevant Fortran77 functions with CUDA C, we port the two-dimensional particle and field computations onto GPU platforms. QuickPIC-GPU supports simulation with a single GPU for up to a resolution of $1024^3$ and 25 particles per cell to avoid time spent on cross-processor communications, and simulation with multiple GPUs for larger problem sizes.

Information

Type
Research Article
Creative Commons
Creative Common License - CCCreative Common License - BYCreative Common License - NC
This is an Open Access article, distributed under the terms of the Creative Commons Attribution-NonCommercial licence (https://creativecommons.org/licenses/by-nc/4.0/), which permits non-commercial re-use, distribution, and reproduction in any medium, provided the original article is properly cited. The written permission of Cambridge University Press or the rights holder(s) must be obtained prior to any commercial use.
Copyright
© The Author(s), 2026. Published by Cambridge University Press
Figure 0

Figure 1. Figure 1 long description.Flow chart of 3-D–2-D loops in QuickPIC.

Figure 1

Figure 2. Class diagram of QuickPIC. Classes outlined in red are the main GPU revision targets.

Figure 2

Figure 3. Figure 3 long description.Mapping of CUDA architecture to particle simulation.

Figure 3

Figure 4. Simulated with the program before(left)/after(right) revision, electric field in direction z (ξ$\xi$), distributed across the x–ξ$\xi$ plane.

Figure 4

Figure 5. Comparison of simulation result before/after revision, electric field in direction z (ξ$\xi$), distributed along the z axis. Simulations were conducted with 64 CPU cores (for the old program) and 1, 2 and 4GPUs (for the new program).

Figure 5

Figure 6. Measurement of simulation 2-D time in seconds. Subplots (a), (b), (c) and (d) show set-ups with 4/9/25/100 particles per cell, respectively. Execution time is measured with 8 (blue, plain)/16 (orange, plain)/32 (green, plain) CPU threads and 1 (blue, slashed)/2 (orange, slashed)/4 (green, slashed) GPUs. In each subplot, results with a simulation resolution of 5123$512^3$ are shown on the left side, and results with a simulation resolution of 10243$1024^3$ are shown on the right side.

Figure 6

Figure 7. Figure 7 long description.Number of node hours spent in D simulation. Subplots (a), (b), (c) and (d) show set-ups with 4/9/25/100 particles per cell, respectively. Execution time is measured with 32 (green, plain) CPU threads and 1 (red, slashed) GPU. In each subplot, results with a simulation resolution of 5123$512^3$ are shown on the left side, and results with a simulation resolution of 10243$1024^3$ are shown on the right side.

Figure 7

Figure 8. Time spent on FFT cross-rank data transfer/other processes. Subplots (a), (b), (c) and (d) show set-ups with 4/9/25/100 particles per cell, respectively. Execution time is measured with 1/2/4GPUs. The FFT MPI transfer time is shown in orange, while time spent on other processes is shown in blue. In each subplot, results with a simulation resolution of 5123$512^3$ are shown on the left side, and results with a simulation resolution of 10243$1024^3$ are shown on the right side.