.. _install-dependencies: 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 - `CMake 3.24.0+ `__ - `Git 2.18+ `__ - `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-config`` tool 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 - `Python 3.9+ `__ - `mpi4py `__ - `numpy `__ - `periodictable `__ - `picmistandard `__ - `lasy `__ - see our ``requirements.txt`` file for compatible versions If you are on a high-performance computing (HPC) system, then :ref:`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.