List of Dependencies
WarpX depends on the following popular third party software. Please see installation instructions below.
a mature C++17 compiler, e.g., GCC 9.1+, Clang 7, NVCC 11.0, MSVC 19.15 or newer
AMReX: we automatically download and compile a copy of AMReX
PICSAR: we automatically download and compile a copy of PICSAR
and for Python bindings:
pyAMReX: we automatically download and compile a copy of pyAMReX
pybind11: we automatically download and compile a copy of pybind11
Optional dependencies include:
MPI 3.0+: for multi-node and/or multi-GPU execution
for on-node accelerated compute one of either:
OpenMP 3.1+: for threaded CPU execution or
CUDA Toolkit 11.7+: for Nvidia GPU support (see matching host-compilers) or
ROCm 5.2+ (5.5+ recommended): for AMD GPU support
oneAPI: for Intel GPU support
FFTW3: for spectral solver (PSATD or IGF) support when running on CPU or SYCL
also needs the
pkg-configtool on Unix
BLAS++ and LAPACK++: for spectral solver (PSATD) support in RZ geometry
Boost 1.66.0+: for QED lookup tables generation support
openPMD-api 0.16.1+: we automatically download and compile a copy of openPMD-api for openPMD I/O support
see optional I/O backends, i.e., ADIOS2 and/or HDF5
Ascent 0.8.0+: for in situ 3D visualization
SENSEI 4.0.0+: for in situ analysis and visualization
CCache: to speed up rebuilds (For CUDA support, needs version 3.7.9+ and 4.2+ is recommended)
Ninja: for faster parallel compiles
-
see our
requirements.txtfile for compatible versions
If you are on a high-performance computing (HPC) system, then please see our separate HPC documentation.
For all other systems, we recommend to use a package dependency manager: Pick one of the installation methods below to install all dependencies for WarpX development in a consistent manner.