![Hier klicken, um den Treffer aus der Auswahl zu entfernen](images/unchecked.gif) |
Titel |
Acceleration of a Particle-in-Cell Code for Space Plasma Simulations with OpenACC |
VerfasserIn |
Ivy Bo Peng, Stefano Markidis, Andris Vaivads, Juris Vencels, Jan Deca, Giovanni Lapenta, Alistair Hart, Erwin Laure |
Konferenz |
EGU General Assembly 2015
|
Medientyp |
Artikel
|
Sprache |
Englisch
|
Digitales Dokument |
PDF |
Erschienen |
In: GRA - Volume 17 (2015) |
Datensatznummer |
250102000
|
Publikation (Nr.) |
EGU/EGU2015-1276.pdf |
|
|
|
Zusammenfassung |
Abstract
We simulate space plasmas with the Particle-in-cell (PIC) method that uses
computational particles to mimic electrons and protons in solar wind and in Earth
magnetosphere. The magnetic and electric fields are computed by solving the
Maxwell’s equations on a computational grid. In each PIC simulation step, there
are four major phases: interpolation of fields to particles, updating the location
and velocity of each particle, interpolation of particles to grids and solving the
Maxwell’s equations on the grid. We use the iPIC3D code, which was implemented
in C++, using both MPI and OpenMP, for our case study.
By November 2014, heterogeneous systems using hardware accelerators such
as Graphics Processing Unit (GPUs) and the Many Integrated Core (MIC)
coprocessors for high performance computing continue growth in the top 500
most powerful supercomputers world wide. Scientific applications for numerical
simulations need to adapt to using accelerators to achieve portability and scalability
in the coming exascale systems. In our work, we conduct a case study of
using OpenACC to offload the computation intensive parts: particle mover
and interpolation of particles to grids, in a massively parallel Particle-in-Cell
simulation code, iPIC3D, to multi-GPU systems. We use MPI for inter-node
communication for halo exchange and communicating particles. We identify the
most promising parts suitable for GPUs accelerator by profiling using CrayPAT.
We implemented manual deep copy to address the challenges of porting C++
classes to GPU. We document the necessary changes in the exiting algorithms to
adapt for GPU computation. We present the challenges and findings as well as
our methodology for porting a Particle-in-Cell code to multi-GPU systems using
OpenACC.
In this work, we will present the challenges, findings and our methodology of
porting a Particle-in-Cell code for space applications as follows:
We profile the iPIC3D code by Cray Performance Analysis Tool (CrayPAT)
and identify the most promising part to be ported to GPU;
We use OpenACC to offload the computation intensive parts in particle
mover and interpolation of particle to fields to GPU;
We analyse the performance and implement necessary changes to the
existing algorithms to adapt to GPU computations; |
|
|
|
|
|