A portable platform for accelerated PIC codes and its application to GPUs using OpenACC

https://doi.org/10.1016/j.cpc.2016.05.008Get rights and content
Under a Creative Commons license
open access

Abstract

We present a portable platform, called PIC_ENGINE, for accelerating Particle-In-Cell (PIC) codes on heterogeneous many-core architectures such as Graphic Processing Units (GPUs). The aim of this development is efficient simulations on future exascale systems by allowing different parallelization strategies depending on the application problem and the specific architecture. To this end, this platform contains the basic steps of the PIC algorithm and has been designed as a test bed for different algorithmic options and data structures. Among the architectures that this engine can explore, particular attention is given here to systems equipped with GPUs. The study demonstrates that our portable PIC implementation based on the OpenACC programming model can achieve performance closely matching theoretical predictions. Using the Cray XC30 system, Piz Daint, at the Swiss National Supercomputing Centre (CSCS), we show that PIC_ENGINE running on an NVIDIA Kepler K20X GPU can outperform the one on an Intel Sandy bridge 8-core CPU by a factor of 3.4.

Keywords

Plasma simulations
Particle-in-cell (PIC)
GPU
OpenACC
Manycore
Hybrid architectures

Cited by (0)

1

Present address: CERN, Physics Department, CH-1211, Geneva 23, Switzerland.