From 6fa80799253a6a0439af5ce0df19a084ed8a47a3 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Mon, 7 Oct 2024 19:05:06 -0700 Subject: [PATCH] openPMD-api: 0.16.1+ Update to the latest stable release of openPMD-api, version 0.16.1. --- .github/workflows/cuda.yml | 2 +- .github/workflows/dependencies/icc.sh | 2 +- Docs/source/developers/gnumake/openpmd.rst | 2 +- Docs/source/install/cmake.rst | 2 +- Docs/source/install/dependencies.rst | 2 +- Docs/source/usage/parameters.rst | 14 +++++++------- Source/Diagnostics/requirements.txt | 2 +- Source/Make.WarpX | 2 +- .../karolina-it4i/spack-karolina-cuda.yaml | 2 +- cmake/dependencies/openPMD.cmake | 6 +++--- setup.py | 2 +- 11 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/cuda.yml b/.github/workflows/cuda.yml index aa0daa2a718..e62a709b5ab 100644 --- a/.github/workflows/cuda.yml +++ b/.github/workflows/cuda.yml @@ -56,7 +56,7 @@ jobs: which nvcc || echo "nvcc not in PATH!" cmake-easyinstall --prefix=/usr/local \ - git+https://github.com/openPMD/openPMD-api.git@0.15.1 \ + git+https://github.com/openPMD/openPMD-api.git@0.16.1 \ -DopenPMD_USE_PYTHON=OFF \ -DBUILD_TESTING=OFF \ -DBUILD_EXAMPLES=OFF \ diff --git a/.github/workflows/dependencies/icc.sh b/.github/workflows/dependencies/icc.sh index fae6e22d45a..63763421d31 100755 --- a/.github/workflows/dependencies/icc.sh +++ b/.github/workflows/dependencies/icc.sh @@ -58,7 +58,7 @@ export CEI_TMP="/tmp/cei" CXX=$(which icpc) CC=$(which icc) \ cmake-easyinstall \ --prefix=/usr/local \ - git+https://github.com/openPMD/openPMD-api.git@0.15.2 \ + git+https://github.com/openPMD/openPMD-api.git@0.16.1 \ -DopenPMD_USE_PYTHON=OFF \ -DBUILD_TESTING=OFF \ -DBUILD_EXAMPLES=OFF \ diff --git a/Docs/source/developers/gnumake/openpmd.rst b/Docs/source/developers/gnumake/openpmd.rst index 3215c9461a1..0497ecf044b 100644 --- a/Docs/source/developers/gnumake/openpmd.rst +++ b/Docs/source/developers/gnumake/openpmd.rst @@ -9,7 +9,7 @@ therefore we recommend to use `spack `__ in order to facilitate the installation. More specifically, we recommend that you try installing the -`openPMD-api library 0.15.1 or newer `__ +`openPMD-api library 0.16.1 or newer `__ using spack (first section below). If this fails, a back-up solution is to install parallel HDF5 with spack, and then install the openPMD-api library from source. diff --git a/Docs/source/install/cmake.rst b/Docs/source/install/cmake.rst index f3f881d4504..5c02fb03b9e 100644 --- a/Docs/source/install/cmake.rst +++ b/Docs/source/install/cmake.rst @@ -128,7 +128,7 @@ CMake Option Default & Values Des ``WarpX_amrex_internal`` **ON**/OFF Needs a pre-installed AMReX library if set to ``OFF`` ``WarpX_openpmd_src`` *None* Path to openPMD-api source directory (preferred if set) ``WarpX_openpmd_repo`` ``https://github.com/openPMD/openPMD-api.git`` Repository URI to pull and build openPMD-api from -``WarpX_openpmd_branch`` ``0.15.2`` Repository branch for ``WarpX_openpmd_repo`` +``WarpX_openpmd_branch`` ``0.16.1`` Repository branch for ``WarpX_openpmd_repo`` ``WarpX_openpmd_internal`` **ON**/OFF Needs a pre-installed openPMD-api library if set to ``OFF`` ``WarpX_picsar_src`` *None* Path to PICSAR source directory (preferred if set) ``WarpX_picsar_repo`` ``https://github.com/ECP-WarpX/picsar.git`` Repository URI to pull and build PICSAR from diff --git a/Docs/source/install/dependencies.rst b/Docs/source/install/dependencies.rst index 200677807d7..ac8bd34b052 100644 --- a/Docs/source/install/dependencies.rst +++ b/Docs/source/install/dependencies.rst @@ -30,7 +30,7 @@ Optional dependencies include: - 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.15.1+ `__: we automatically download and compile a copy of openPMD-api for openPMD I/O 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 diff --git a/Docs/source/usage/parameters.rst b/Docs/source/usage/parameters.rst index 31f0e06ab5b..7c92b5cf9e7 100644 --- a/Docs/source/usage/parameters.rst +++ b/Docs/source/usage/parameters.rst @@ -2780,18 +2780,18 @@ In-situ capabilities can be used by turning on Sensei or Ascent (provided they a When WarpX is compiled with openPMD support, the first available backend in the order given above is taken. * ``.openpmd_encoding`` (optional, ``v`` (variable based), ``f`` (file based) or ``g`` (group based) ) only read if ``.format = openpmd``. - openPMD `file output encoding `__. + openPMD `file output encoding `__. File based: one file per timestep (slower), group/variable based: one file for all steps (faster)). - ``variable based`` is an `experimental feature with ADIOS2 `__ and not supported for back-transformed diagnostics. + ``variable based`` is an `experimental feature with ADIOS2 `__ and not supported for back-transformed diagnostics. Default: ``f`` (full diagnostics) * ``.adios2_operator.type`` (``zfp``, ``blosc``) optional, - `ADIOS2 I/O operator type `__ for `openPMD `_ data dumps. + `ADIOS2 I/O operator type `__ for `openPMD `_ data dumps. * ``.adios2_operator.parameters.*`` optional, - `ADIOS2 I/O operator parameters `__ for `openPMD `_ data dumps. + `ADIOS2 I/O operator parameters `__ for `openPMD `_ data dumps. - A typical example for `ADIOS2 output using lossless compression `__ with ``blosc`` using the ``zstd`` compressor and 6 CPU treads per MPI Rank (e.g. for a `GPU run with spare CPU resources `__): + A typical example for `ADIOS2 output using lossless compression `__ with ``blosc`` using the ``zstd`` compressor and 6 CPU treads per MPI Rank (e.g. for a `GPU run with spare CPU resources `__): .. code-block:: text @@ -2810,11 +2810,11 @@ In-situ capabilities can be used by turning on Sensei or Ascent (provided they a .adios2_operator.parameters.precision = 3 * ``.adios2_engine.type`` (``bp4``, ``sst``, ``ssc``, ``dataman``) optional, - `ADIOS2 Engine type `__ for `openPMD `_ data dumps. + `ADIOS2 Engine type `__ for `openPMD `_ data dumps. See full list of engines at `ADIOS2 readthedocs `__ * ``.adios2_engine.parameters.*`` optional, - `ADIOS2 Engine parameters `__ for `openPMD `_ data dumps. + `ADIOS2 Engine parameters `__ for `openPMD `_ data dumps. An example for parameters for the BP engine are setting the number of writers (``NumAggregators``), transparently redirecting data to burst buffers etc. A detailed list of engine-specific parameters are available at the official `ADIOS2 documentation `__ diff --git a/Source/Diagnostics/requirements.txt b/Source/Diagnostics/requirements.txt index d9f5cb553ee..9c85c8a621d 100644 --- a/Source/Diagnostics/requirements.txt +++ b/Source/Diagnostics/requirements.txt @@ -5,4 +5,4 @@ # License: BSD-3-Clause-LBNL # keep this entry for GitHub's dependency graph -openPMD-api>=0.15.1 +openPMD-api>=0.16.1 diff --git a/Source/Make.WarpX b/Source/Make.WarpX index 57bac56e9a4..6563121e336 100644 --- a/Source/Make.WarpX +++ b/Source/Make.WarpX @@ -151,7 +151,7 @@ endif ifeq ($(USE_OPENPMD), TRUE) # try pkg-config query - ifeq (0, $(shell pkg-config "openPMD >= 0.15.1"; echo $$?)) + ifeq (0, $(shell pkg-config "openPMD >= 0.16.1"; echo $$?)) CXXFLAGS += $(shell pkg-config --cflags openPMD) LIBRARY_LOCATIONS += $(shell pkg-config --variable=libdir openPMD) libraries += $(shell pkg-config --libs-only-l openPMD) diff --git a/Tools/machines/karolina-it4i/spack-karolina-cuda.yaml b/Tools/machines/karolina-it4i/spack-karolina-cuda.yaml index 1cb6a4ac209..ead49f06fab 100644 --- a/Tools/machines/karolina-it4i/spack-karolina-cuda.yaml +++ b/Tools/machines/karolina-it4i/spack-karolina-cuda.yaml @@ -20,7 +20,7 @@ spack: - py-cython - py-mpi4py - py-numpy@1.24.2 - - openpmd-api@0.15.2 +python + - openpmd-api@0.16.1 +python - py-periodictable@1.5.0 - py-h5py # optional diff --git a/cmake/dependencies/openPMD.cmake b/cmake/dependencies/openPMD.cmake index ce6ec4d0967..a5a80f25790 100644 --- a/cmake/dependencies/openPMD.cmake +++ b/cmake/dependencies/openPMD.cmake @@ -13,7 +13,7 @@ function(find_openpmd) if(WarpX_openpmd_internal OR WarpX_openpmd_src) set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) - # see https://openpmd-api.readthedocs.io/en/0.15.2/dev/buildoptions.html + # see https://openpmd-api.readthedocs.io/en/0.16.1/dev/buildoptions.html set(openPMD_USE_ADIOS1 OFF CACHE INTERNAL "") set(openPMD_USE_MPI ${WarpX_MPI} CACHE INTERNAL "") set(openPMD_USE_PYTHON OFF CACHE INTERNAL "") @@ -71,7 +71,7 @@ function(find_openpmd) else() set(COMPONENT_WMPI NOMPI) endif() - find_package(openPMD 0.15.1 CONFIG REQUIRED COMPONENTS ${COMPONENT_WMPI}) + find_package(openPMD 0.16.1 CONFIG REQUIRED COMPONENTS ${COMPONENT_WMPI}) message(STATUS "openPMD-api: Found version '${openPMD_VERSION}'") endif() endfunction() @@ -87,7 +87,7 @@ if(WarpX_OPENPMD) set(WarpX_openpmd_repo "https://github.com/openPMD/openPMD-api.git" CACHE STRING "Repository URI to pull and build openPMD-api from if(WarpX_openpmd_internal)") - set(WarpX_openpmd_branch "0.15.2" + set(WarpX_openpmd_branch "0.16.1" CACHE STRING "Repository branch for WarpX_openpmd_repo if(WarpX_openpmd_internal)") diff --git a/setup.py b/setup.py index ad5501371c5..9538adcb106 100644 --- a/setup.py +++ b/setup.py @@ -318,7 +318,7 @@ def build_extension(self, ext): # }, extras_require={ "all": [ - "openPMD-api~=0.15.1", + "openPMD-api>=0.16.1", "openPMD-viewer~=1.1", "yt>=4.1.0", "matplotlib",