Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] openPMD-api: 0.16.0+ #5375

Open
wants to merge 1 commit into
base: development
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/cuda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,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.0 \
-DopenPMD_USE_PYTHON=OFF \
-DBUILD_TESTING=OFF \
-DBUILD_EXAMPLES=OFF \
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dependencies/icc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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.0 \
-DopenPMD_USE_PYTHON=OFF \
-DBUILD_TESTING=OFF \
-DBUILD_EXAMPLES=OFF \
Expand Down
2 changes: 1 addition & 1 deletion Docs/source/developers/gnumake/openpmd.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ therefore we recommend to use `spack <https://
spack.io>`__ in order to facilitate the installation.

More specifically, we recommend that you try installing the
`openPMD-api library 0.15.1 or newer <https://openpmd-api.readthedocs.io/en/0.15.1/>`__
`openPMD-api library 0.16.0 or newer <https://openpmd-api.readthedocs.io/en/0.16.0/>`__
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.
Expand Down
2 changes: 1 addition & 1 deletion Docs/source/install/cmake.rst
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,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.0`` 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
Expand Down
2 changes: 1 addition & 1 deletion Docs/source/install/dependencies.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Optional dependencies include:
- `heFFTe 2.4.0+ <https://github.com/icl-utk-edu/heffte>`__: for multi-node spectral solver (IGF) support
- `BLAS++ <https://github.com/icl-utk-edu/blaspp>`__ and `LAPACK++ <https://github.com/icl-utk-edu/lapackpp>`__: for spectral solver (PSATD) support in RZ geometry
- `Boost 1.66.0+ <https://www.boost.org/>`__: for QED lookup tables generation support
- `openPMD-api 0.15.1+ <https://github.com/openPMD/openPMD-api>`__: we automatically download and compile a copy of openPMD-api for openPMD I/O support
- `openPMD-api 0.16.0+ <https://github.com/openPMD/openPMD-api>`__: we automatically download and compile a copy of openPMD-api for openPMD I/O support

- see `optional I/O backends <https://github.com/openPMD/openPMD-api#dependencies>`__, i.e., ADIOS2 and/or HDF5
- `Ascent 0.8.0+ <https://ascent.readthedocs.io>`__: for in situ 3D visualization
Expand Down
14 changes: 7 additions & 7 deletions Docs/source/usage/parameters.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2700,18 +2700,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.

* ``<diag_name>.openpmd_encoding`` (optional, ``v`` (variable based), ``f`` (file based) or ``g`` (group based) ) only read if ``<diag_name>.format = openpmd``.
openPMD `file output encoding <https://openpmd-api.readthedocs.io/en/0.15.2/usage/concepts.html#iteration-and-series>`__.
openPMD `file output encoding <https://openpmd-api.readthedocs.io/en/0.16.0/usage/concepts.html#iteration-and-series>`__.
File based: one file per timestep (slower), group/variable based: one file for all steps (faster)).
``variable based`` is an `experimental feature with ADIOS2 <https://openpmd-api.readthedocs.io/en/0.15.2/backends/adios2.html#experimental-new-adios2-schema>`__ and not supported for back-transformed diagnostics.
``variable based`` is an `experimental feature with ADIOS2 <https://openpmd-api.readthedocs.io/en/0.16.0/backends/adios2.html#experimental-new-adios2-schema>`__ and not supported for back-transformed diagnostics.
Default: ``f`` (full diagnostics)

* ``<diag_name>.adios2_operator.type`` (``zfp``, ``blosc``) optional,
`ADIOS2 I/O operator type <https://openpmd-api.readthedocs.io/en/0.15.2/details/backendconfig.html#adios2>`__ for `openPMD <https://www.openPMD.org>`_ data dumps.
`ADIOS2 I/O operator type <https://openpmd-api.readthedocs.io/en/0.16.0/details/backendconfig.html#adios2>`__ for `openPMD <https://www.openPMD.org>`_ data dumps.

* ``<diag_name>.adios2_operator.parameters.*`` optional,
`ADIOS2 I/O operator parameters <https://openpmd-api.readthedocs.io/en/0.15.2/details/backendconfig.html#adios2>`__ for `openPMD <https://www.openPMD.org>`_ data dumps.
`ADIOS2 I/O operator parameters <https://openpmd-api.readthedocs.io/en/0.16.0/details/backendconfig.html#adios2>`__ for `openPMD <https://www.openPMD.org>`_ data dumps.

A typical example for `ADIOS2 output using lossless compression <https://openpmd-api.readthedocs.io/en/0.15.2/details/backendconfig.html#adios2>`__ with ``blosc`` using the ``zstd`` compressor and 6 CPU treads per MPI Rank (e.g. for a `GPU run with spare CPU resources <https://arxiv.org/abs/1706.00522>`__):
A typical example for `ADIOS2 output using lossless compression <https://openpmd-api.readthedocs.io/en/0.16.0/details/backendconfig.html#adios2>`__ with ``blosc`` using the ``zstd`` compressor and 6 CPU treads per MPI Rank (e.g. for a `GPU run with spare CPU resources <https://arxiv.org/abs/1706.00522>`__):

.. code-block:: text

Expand All @@ -2730,11 +2730,11 @@ In-situ capabilities can be used by turning on Sensei or Ascent (provided they a
<diag_name>.adios2_operator.parameters.precision = 3

* ``<diag_name>.adios2_engine.type`` (``bp4``, ``sst``, ``ssc``, ``dataman``) optional,
`ADIOS2 Engine type <https://openpmd-api.readthedocs.io/en/0.15.2/details/backendconfig.html#adios2>`__ for `openPMD <https://www.openPMD.org>`_ data dumps.
`ADIOS2 Engine type <https://openpmd-api.readthedocs.io/en/0.16.0/details/backendconfig.html#adios2>`__ for `openPMD <https://www.openPMD.org>`_ data dumps.
See full list of engines at `ADIOS2 readthedocs <https://adios2.readthedocs.io/en/latest/engines/engines.html>`__

* ``<diag_name>.adios2_engine.parameters.*`` optional,
`ADIOS2 Engine parameters <https://openpmd-api.readthedocs.io/en/0.15.2/details/backendconfig.html#adios2>`__ for `openPMD <https://www.openPMD.org>`_ data dumps.
`ADIOS2 Engine parameters <https://openpmd-api.readthedocs.io/en/0.16.0/details/backendconfig.html#adios2>`__ for `openPMD <https://www.openPMD.org>`_ 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 <https://adios2.readthedocs.io/en/latest/engines/engines.html>`__
Expand Down
2 changes: 1 addition & 1 deletion Source/Diagnostics/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.0
2 changes: 1 addition & 1 deletion Source/Make.WarpX
Original file line number Diff line number Diff line change
Expand Up @@ -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.0"; echo $$?))
CXXFLAGS += $(shell pkg-config --cflags openPMD)
LIBRARY_LOCATIONS += $(shell pkg-config --variable=libdir openPMD)
libraries += $(shell pkg-config --libs-only-l openPMD)
Expand Down
2 changes: 1 addition & 1 deletion Tools/machines/karolina-it4i/spack-karolina-cuda.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ spack:
- py-cython
- py-mpi4py
- [email protected]
- openpmd-api@0.15.2 +python
- openpmd-api@0.16.0 +python
- [email protected]
- py-h5py
# optional
Expand Down
6 changes: 3 additions & 3 deletions cmake/dependencies/openPMD.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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.0/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 "")
Expand Down Expand Up @@ -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.0 CONFIG REQUIRED COMPONENTS ${COMPONENT_WMPI})
message(STATUS "openPMD-api: Found version '${openPMD_VERSION}'")
endif()
endfunction()
Expand All @@ -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.0"
CACHE STRING
"Repository branch for WarpX_openpmd_repo if(WarpX_openpmd_internal)")

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ def build_extension(self, ext):
# },
extras_require={
"all": [
"openPMD-api~=0.15.1",
"openPMD-api>=0.16.0",
"openPMD-viewer~=1.1",
"yt>=4.1.0",
"matplotlib",
Expand Down
Loading