A portable platform for accelerated PIC codes and its application to GPUs using OpenACC
Ecole Polytechnique Federale de Lausanne (EPFL), Swiss Plasma Center (SPC), CH-1015 Lausanne, Switzerland
arXiv:1603.02886 [physics.comp-ph], (9 Mar 2016)
@article{hariri2016portable,
title={A portable platform for accelerated PIC codes and its application to GPUs using OpenACC},
author={Hariri, F. and Tran, T.M. and Jocksch, A. and Lanti, E. and Progsch, J. and Messmer, P. and Brunner, S. and Gheller, G. and Villard, L.},
year={2016},
month={mar},
archivePrefix={"arXiv"},
primaryClass={physics.comp-ph}
}
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 Sandybridge 8-core CPU by a factor of 3.4.
March 12, 2016 by hgpu