Efficient GPU implementation of the Particle-in-Cell/Monte-Carlo collisions method for 1D simulation of low-pressure capacitively coupled plasmas

Abstract In this paper, we describe an efficient, massively parallel GPU implementation strategy for speeding up one-dimensional electrostatic plasma simulations based on the Particle-in-Cell method with Monte-Carlo collisions. Relying on the Roofline performance model, we identify performance-critical points of the program and provide optimised solutions. We use four benchmark cases to verify the correctness of the CUDA and OpenCL implementations and analyse their performance properties on a number of NVIDIA and AMD cards. Plasma parameters computed with both GPU implementations differ not more than 2% from each other and respective literature reference data. Our final implementations reach over 2.6 Tflop/s sustained performance on a single card, and show speed up factors of up to 200 (when using 10 million particles). We demonstrate that GPUs can be very efficiently used for simulating collisional plasmas and argue that their further use will enable performing more accurate simulations in shorter time, increase research productivity and help in advancing the science of plasma simulation.

[1]  A. Lichtenberg,et al.  Principles of Plasma Discharges and Materials Processing , 1994 .

[2]  Timothy G. Mattson,et al.  OpenCL Programming Guide , 2011 .

[3]  A. Neuber,et al.  Graphics processing unit accelerated three-dimensional model for the simulation of pulsed low-temperature plasmas , 2014 .

[4]  Alejandro Soba,et al.  First experience with particle-in-cell plasma physics code on ARM-based HPC systems , 2015 .

[5]  R. Brinkmann,et al.  Charged particle dynamics and distribution functions in low pressure dual-frequency capacitively coupled plasmas operated at low frequencies and high voltages , 2020, Plasma Sources Science and Technology.

[6]  Michael C. Huang,et al.  Particle-in-cell simulations with charge-conserving current deposition on graphic processing units , 2010, J. Comput. Phys..

[7]  Luis Chacón,et al.  An efficient mixed-precision, hybrid CPU-GPU implementation of a nonlinearly implicit one-dimensional particle-in-cell algorithm , 2011, J. Comput. Phys..

[8]  Samuel Williams,et al.  Analysis and optimization of gyrokinetic toroidal simulations on homogenous and heterogenous platforms , 2013, Int. J. High Perform. Comput. Appl..

[9]  Mathieu Lobet,et al.  Adaptive SIMD optimizations in particle-in-cell codes with fine-grain particle sorting , 2019, Comput. Phys. Commun..

[10]  Viktor K. Decyk,et al.  Particle-in-Cell algorithms for emerging computer architectures , 2014, Comput. Phys. Commun..

[11]  Z. Donkó Particle simulation methods for studies of low-pressure plasma sources , 2011 .

[12]  Viktor K. Decyk,et al.  A general concurrent algorithm for plasma particle-in-cell simulation codes , 1989 .

[13]  Viktor K. Decyk,et al.  Adaptable Particle-in-Cell algorithms for graphical processing units , 2011, Comput. Phys. Commun..

[14]  Sergey Bastrakov,et al.  Particle-in-Cell laser-plasma simulation on Xeon Phi coprocessors , 2015, Comput. Phys. Commun..

[15]  David Tskhakaya,et al.  Optimization of PIC codes by improved memory management , 2007, J. Comput. Phys..

[16]  Max Grossman,et al.  Professional CUDA C Programming , 2014 .

[17]  I. Rafatov,et al.  Particle in Cell/Monte Carlo Collision Method for Simulation of RF Glow Discharges: Effect of Super Particle Weighting , 2014 .

[18]  M. Turner Kinetic properties of particle-in-cell simulations compromised by {M}onte {C}arlo collisions , 2006 .

[19]  William H. Press,et al.  Numerical Recipes 3rd Edition: The Art of Scientific Computing , 2007 .

[20]  Laurent Villard,et al.  A portable platform for accelerated PIC codes and its application to GPUs using OpenACC , 2016, Comput. Phys. Commun..

[21]  Jihun Kim,et al.  Efficiency Enhancement of PIC-MCC Modeling for Magnetron Sputtering Simulations Using GPU Parallelization , 2016, IEEE Transactions on Plasma Science.

[22]  L. Dagum,et al.  OpenMP: an industry standard API for shared-memory programming , 1998 .

[23]  T. Makabe,et al.  Plasma Electronics: Applications in Microelectronic Device Fabrication , 2006 .

[24]  Sunita Chandrasekaran,et al.  OpenACC for Programmers: Concepts and Strategies , 2017 .

[25]  Gregor E. Morfill,et al.  Relationship between the ion drag and electric forces in dense dust clouds , 2013 .

[26]  A. V. Phelps,et al.  The application of scattering cross sections to ion flux models in discharge sheaths , 1994 .

[27]  Viktor K. Decyk,et al.  UCLA Parallel PIC Framework , 2004, Comput. Phys. Commun..

[28]  Samuel Williams,et al.  Roofline: an insightful visual performance model for multicore architectures , 2009, CACM.

[29]  J. Verboncoeur Particle simulation of plasmas: review and advances , 2005 .

[30]  Barbara Chapman,et al.  Using OpenMP - portable shared memory parallel programming , 2007, Scientific and engineering computation.

[31]  Frederico Pratas,et al.  Exploring GPU performance, power and energy-efficiency bounds with Cache-aware Roofline Modeling , 2017, 2017 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS).

[32]  Viktor K. Decyk,et al.  Skeleton PIC Codes for Parallel Computers , 1995 .

[33]  M. Turner,et al.  Simulation benchmarks for low-pressure plasmas: Capacitive discharges , 2012, 1211.5246.

[34]  Anthony Skjellum,et al.  Using MPI - portable parallel programming with the message-parsing interface , 1994 .

[35]  Markus M. Becker,et al.  PIC/MCC simulation of capacitively coupled discharges: Effect of particle management and integration , 2016, Comput. Phys. Commun..

[36]  Nail A. Gumerov,et al.  Fast parallel Particle-To-Grid interpolation for plasma PIC simulations on the GPU , 2008, J. Parallel Distributed Comput..

[37]  Charles K. Birdsall,et al.  Particle-in-cell charged-particle simulations, plus Monte Carlo collisions with neutral atoms, PIC-MCC , 1991 .

[38]  H. Lee,et al.  Model description of a two-dimensional electrostatic particle-in-cell simulation parallelized with a graphics processing unit for plasma discharges , 2019, Plasma Research Express.

[39]  N. Hanzlikova Particle-in-cell simulations Of highly collisional plasmas on the GPU in 1 and 2 dimensions , 2015 .

[40]  C. Birdsall,et al.  Plasma Physics via Computer Simulation , 2018 .

[41]  Chris R. Jesshope,et al.  Parallel Computers 2: Architecture, Programming and Algorithms , 1981 .

[42]  Thomas Mussenbrock,et al.  Fine-sorting one-dimensional particle-in-cell algorithm with Monte-Carlo collisions on a graphics processing unit , 2011, Comput. Phys. Commun..

[43]  B. Chaudhury,et al.  Particle-In-Cell Monte Carlo Collision Model on GPU—Application to a Low-Temperature Magnetized Plasma , 2013, IEEE Transactions on Plasma Science.