miniPIC is a playground for computer science and HPC experiments applied to the Particle-In-Cell method.
Warning
miniPIC is not a code intended to be used for numerical simulation of physical cases.
Internal Backend | CPU Intel | CPU AMD | ARM based CPU | |
---|---|---|---|---|
OpenMP loop | LLVM, GCC, OneAPI | LLVM, GCC, OneAPI | LLVM 14, GCC 10 | |
SYCL | LLVM, GCC, OneAPI | OneAPI | Not tested | |
Kokkos | OpenMP | LLVM, GCC, OneAPI | Not tested | LLVM, GCC |
Eventify | Not tested | |||
OpenMP task | Not tested |
Internal Backend | GPU NVIDIA | GPU AMD | GPU Intel | |
---|---|---|---|---|
Kokkos | CUDA, HIP, SYCL | CUDA 11 (tested on V100, A100) | HIP (tested on MI250) | Tested on Intel MAX 1550 |
SYCL | tested on V100, A100 | Tested on MI250 | Tested on Intel MAX 1550 | |
THRUST | tested on V100, A100 (nvcc 11) | Tested on MI250 | Not tested | |
OpenACC | tested on V100, A100 (nvhpc 23.7) | Not tested | Not tested | |
OpenMP target | Tested (nvhpc 23.7) | Not tested | Not tested |
doc
: documentation pagessrc
: C++ sourcesetups
: headers used to initialize the physical parameterscommon
: source files common to all backends- backend specific folder (
kokkos
,thrust
, etc): backend specific operators
lib
: Python libraries for miniPIC python toolsscript
: Python scripts to read and plot diagstests
: simulation tests used to validate the codevalidation
: Python validation scriptsunit_tests
: unit tests