Build Dependencies

openPMD-api depends on a series of third-party projects. These are currently:

Required

  • CMake 3.15.0+

  • C++17 capable compiler, e.g., g++ 7+, clang 7+, MSVC 19.15+, icpc 19+, icpx

Shipped internally

The following libraries are shipped internally in share/openPMD/thirdParty/ for convenience:

Optional: I/O backends

while those can be build either with or without:

  • MPI 2.1+, e.g. OpenMPI 1.6.5+ or MPICH2

Optional: language bindings

  • Python:

    • Python 3.6 - 3.10

    • pybind11 2.9.1+

    • numpy 1.15+

    • mpi4py 2.1+ (optional, for MPI)

    • pandas 1.0+ (optional, for dataframes)

    • dask 2021+ (optional, for dask dataframes)

  • CUDA C++ (optional, currently used only in tests)

Quick Install with Spack

Quickly install all dependencies with a Spack anonymous environment. Go in the base directory and type:

spack env activate -d .
spack install