Skip to content
Snippets Groups Projects
Commit 316b6204 authored by Uwe Jandt (DESY, HIFIS)'s avatar Uwe Jandt (DESY, HIFIS)
Browse files

Merge branch 'update_spotlight_PIConGPU' into 'update-PIConGPU'

Update PIConGPU Softeware Spotlight

See merge request !336
parents 09e254a1 8ec65481
No related branches found
No related tags found
3 merge requests!374Finalize Update on PIConGPU Software Spotlight,!338Update PIConGPU Software Spotlight,!336Update PIConGPU Softeware Spotlight
......@@ -4,7 +4,7 @@ layout: spotlight
# Spotlight list attributes
name: PIConGPU
preview_image: picongpu/picongpu-logo.png
excerpt: PIConGPU is a relativistic Particle-in-Cell code running on graphic processing units. It is Open Source und is freely available for download. PIConGPU is developed and maintained by the Junior Group Computational Radiation Physics at the Institute for Radiation Physics at HZDR in close collaboration with the Center for Information Services and High Performance Computing (ZIH) of the Technical University Dresden.
excerpt: PIConGPU is a relativistic Particle-in-Cell code running on graphic processing units. It is Open Source und is freely available for download. PIConGPU is developed and maintained by the Computational Radiation Physics Group at the Institute for Radiation Physics at HZDR in close collaboration with the Center for Advanced Systems Understanding (CASUS).
# Title for individual page
title_image:
......@@ -17,7 +17,9 @@ hgf_research_field: Matter
hgf_centers:
- HZDR
contributing_organisations:
- TU Dresden
- CASUS
- University of Delaware
- Oak Ridge National Laboratory
scientific_community:
- Matter / Photon Science
impact_on_community:
......@@ -42,13 +44,14 @@ funding:
# PIConGPU Features
* A variable, Yee-like grid, on which electric and magnetic fields are approximated.
* Particle-Pushers following the works of Boris and Vay
* Maxwell-Solvers as proposed by Yee and Lehe
* Current-Deposition schemes published by Esirkepov and Villasenor-Buneman
* Particle-pushers following the works of Boris and Vay
* Maxwell-solvers as proposed by Yee and Lehe
* Current-deposition schemes published by Esirkepov and Villasenor-Buneman
* Macro-Particle Form Factors: NGP, CIC, TSC, PSQ
* Computation of far field radiation due to electron motion
* Parallel HDF5 Output
* Online-Visualization (2D/3D)
* Parallel output via [OpenPMD](https://github.com/openPMD/) to HDF5 or ADIOS2
* Hardware abstraction for the compute target platforms through [Alpaka](https://github.com/alpaka-group/alpaka)
* Online-Visualization (2D/3D) via [ISAAC](https://github.com/ComputationalRadiationPhysics/isaac)
* The Particle-in-Cell algorithm is a central tool in plasma physics. It describes the dynamics of a plasma by computing the motion of electrons and ions in the plasma based on Maxwell's equations.
## How does the Particle-in-Cell Algorithm work?
......@@ -63,9 +66,10 @@ These new fields then act back on the particles.
## What is so new about PIConGPU?
GPUs show very high computational performance, because many processors work in parallel. In order to make the most out of this performance, the processors should work independently of each other. In case of the PIC-Algorithm this is hard to achieve, since in the current deposition step, currents which are fixed to the cells have to be computed from the velocity of particles moving freely between grid cells. This motion leads to memory access patterns in which current data and particle data are located at different places in the memory and parallel processes can disturb each others execution when accessing the same part of the memory.
GPUs show very high computational performance, because many processors work in parallel. In order to make the most out of this performance, the processors should work independently of each other. In case of the PIC-Algorithm this is hard to achieve, since in the electrical current deposition step, currents which are fixed to the cells have to be computed from the velocity of particles moving freely between grid cells. This motion leads to memory access patterns in which electrical current data and particle data are located at different places in the memory and parallel processes can disturb each others execution when accessing the same part of the memory.
This problem was solved in our group using a new data model for particle and grid-based data and asynchronous data transfer.
Recently, this problem was solved in our group using a new data model for particle and grid-based data and asynchronous data transfer.
Furthermore, PIConGPU is written in a hardware agnostic way using an hierarchical system model, that is mapped to the available compute resources by the zero-overheap compile time library Alpaka. As a result PIConGPU shows similarly great performance on all supported platforms (CPUs from all vendors as well as AMD and NVIDIA GPUs).
## All that with a single GPU?
......@@ -75,7 +79,7 @@ The problem with this approach is the data transfer between GPUs. For this, data
This process normally takes a long time and GPUs have to wait for the end of the data transfer before continuing their computations.
We were able to solve this problem by interleaving the data transfer between GPUs and the computation on a single GPU, so that the GPUs can execute the algorithmic steps continuously without interruption [3,4]. This was only possible because we got help from ZIH, TU Dresden, which provided an efficient library for data transfer between GPUs and tools to measure the performance of our code.
We were able to solve this problem by interleaving the data transfer between GPUs and the computation on a single GPU, so that the GPUs can execute the algorithmic steps continuously without interruption.
## What does this mean for simulations?
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment