aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Axel Huebl <axel.huebl@plasma.ninja> 2021-12-21 10:54:20 -0800
committerGravatar GitHub <noreply@github.com> 2021-12-21 10:54:20 -0800
commit67cbc471bdd94217d34ee2e8b8ccda5dc93cfa7d (patch)
treec53118ff7774d077b03c7026050a7861bf0cd614
parent038af1cc1ebf250d0633f21d4a2579c1bad03f34 (diff)
downloadWarpX-67cbc471bdd94217d34ee2e8b8ccda5dc93cfa7d.tar.gz
WarpX-67cbc471bdd94217d34ee2e8b8ccda5dc93cfa7d.tar.zst
WarpX-67cbc471bdd94217d34ee2e8b8ccda5dc93cfa7d.zip
CMake: openPMD on by default (#2698)
openPMD builds are stable enough to be default-ON. Due to lacking heuristicst, we don't enable openPMD by default in GNUmake. (Further environments hints, e.g. `PKG_CONFIG_PATH`, or a system-path install are needed there.)
-rw-r--r--CMakeLists.txt2
-rw-r--r--Docs/source/developers/gnumake/openpmd.rst2
-rw-r--r--Docs/source/install/cmake.rst8
-rw-r--r--Docs/source/install/hpc/cori.rst4
-rw-r--r--Docs/source/install/hpc/juwels.rst2
-rw-r--r--Docs/source/install/hpc/lassen.rst2
-rw-r--r--Docs/source/install/hpc/ookami.rst4
-rw-r--r--Docs/source/install/hpc/perlmutter.rst2
-rw-r--r--Docs/source/install/hpc/quartz.rst2
-rw-r--r--Docs/source/install/hpc/spock.rst2
-rw-r--r--Docs/source/install/hpc/summit.rst4
-rw-r--r--setup.py2
12 files changed, 18 insertions, 18 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index da4e3acd9..fae1f2d0a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -66,7 +66,7 @@ cmake_dependent_option(WarpX_GPUCLOCK
"WarpX_COMPUTE STREQUAL CUDA OR WarpX_COMPUTE STREQUAL HIP" OFF)
option(WarpX_LIB "Build WarpX as a shared library" OFF)
option(WarpX_MPI "Multi-node support (message-passing)" ON)
-option(WarpX_OPENPMD "openPMD I/O (HDF5, ADIOS)" OFF)
+option(WarpX_OPENPMD "openPMD I/O (HDF5, ADIOS)" ON)
option(WarpX_PSATD "spectral solver support" OFF)
option(WarpX_SENSEI "SENSEI in situ diagnostics" OFF)
option(WarpX_QED "QED support (requires PICSAR)" ON)
diff --git a/Docs/source/developers/gnumake/openpmd.rst b/Docs/source/developers/gnumake/openpmd.rst
index 4721fb570..824624317 100644
--- a/Docs/source/developers/gnumake/openpmd.rst
+++ b/Docs/source/developers/gnumake/openpmd.rst
@@ -114,7 +114,7 @@ Finally, compile WarpX:
.. note::
- If you compile with :ref:`CMake <install-developers>`, all you need to add is the ``-DWarpX_OPENPMD=ON`` option, and we will download and build openPMD-api on-the-fly.
+ If you compile with :ref:`CMake <install-developers>`, all you need to add is the ``-DWarpX_OPENPMD=ON`` option (on by default), and we will download and build openPMD-api on-the-fly.
When running WarpX, we will recall where you installed openPMD-api via RPATHs, so you just need to load the same module environment as used for building (same MPI, HDF5, ADIOS2, for instance).
diff --git a/Docs/source/install/cmake.rst b/Docs/source/install/cmake.rst
index 3267badb3..14541b5ea 100644
--- a/Docs/source/install/cmake.rst
+++ b/Docs/source/install/cmake.rst
@@ -66,7 +66,7 @@ or by adding arguments with ``-D<OPTION>=<VALUE>`` to the first CMake call, e.g.
.. code-block:: bash
- cmake -S . -B build -DWarpX_DIMS=2 -DWarpX_COMPUTE=CUDA -DWarpX_OPENPMD=ON
+ cmake -S . -B build -DWarpX_DIMS=2 -DWarpX_COMPUTE=CUDA
.. _building-cmake-options:
@@ -90,7 +90,7 @@ CMake Option Default & Values Descr
``WarpX_LIB`` ON/**OFF** Build WarpX as a shared library
``WarpX_MPI`` **ON**/OFF Multi-node support (message-passing)
``WarpX_MPI_THREAD_MULTIPLE`` **ON**/OFF MPI thread-multiple support, i.e. for ``async_io``
-``WarpX_OPENPMD`` ON/**OFF** openPMD I/O (HDF5, ADIOS)
+``WarpX_OPENPMD`` **ON**/OFF openPMD I/O (HDF5, ADIOS)
``WarpX_PRECISION`` SINGLE/**DOUBLE** Floating point precision (single/double)
``WarpX_PSATD`` ON/**OFF** Spectral solver
``WarpX_QED`` **ON**/OFF QED support (requires PICSAR)
@@ -189,7 +189,7 @@ Environment Variable Default & Values Descr
``WARPX_DIMS`` ``"2;3;RZ"`` Simulation dimensionalities (semicolon-separated list)
``WARPX_EB`` ON/**OFF** Embedded boundary support (not supported in RZ yet)
``WARPX_MPI`` ON/**OFF** Multi-node support (message-passing)
-``WARPX_OPENPMD`` ON/**OFF** openPMD I/O (HDF5, ADIOS)
+``WARPX_OPENPMD`` **ON**/OFF openPMD I/O (HDF5, ADIOS)
``WARPX_PRECISION`` SINGLE/**DOUBLE** Floating point precision (single/double)
``WARPX_PSATD`` ON/**OFF** Spectral solver
``WARPX_QED`` **ON**/OFF PICSAR QED (requires PICSAR)
@@ -229,7 +229,7 @@ So another sophisticated example might be: use Clang as the compiler, build with
.. code-block:: bash
- CC=$(which clang) CXX=$(which clang++) WARPX_AMREX_SRC=$PWD/../amrex WARPX_PICSAR_SRC=$PWD/../picsar WARPX_PSATD=ON WARPX_MPI=ON WARPX_OPENPMD=ON WARPX_DIMS=3 CMAKE_PREFIX_PATH=$HOME/sw/hdf5-parallel-1.10.4:$CMAKE_PREFIX_PATH python3 -m pip install --force-reinstall -v .
+ CC=$(which clang) CXX=$(which clang++) WARPX_AMREX_SRC=$PWD/../amrex WARPX_PICSAR_SRC=$PWD/../picsar WARPX_PSATD=ON WARPX_MPI=ON WARPX_DIMS=3 CMAKE_PREFIX_PATH=$HOME/sw/hdf5-parallel-1.10.4:$CMAKE_PREFIX_PATH python3 -m pip install --force-reinstall -v .
Here we wrote this all in one line, but one can also set all environment variables in a development environment and keep the pip call nice and short as in the beginning.
Note that you need to use absolute paths for external source trees, because pip builds in a temporary directory, e.g. ``export WARPX_AMREX_SRC=$HOME/src/amrex``.
diff --git a/Docs/source/install/hpc/cori.rst b/Docs/source/install/hpc/cori.rst
index 6304edffc..400c413c2 100644
--- a/Docs/source/install/hpc/cori.rst
+++ b/Docs/source/install/hpc/cori.rst
@@ -275,7 +275,7 @@ Then, ``cd`` into the directory ``$HOME/src/warpx`` and use the following comman
rm -rf build
# append if you target GPUs: -DWarpX_COMPUTE=CUDA
- cmake -S . -B build -DWarpX_OPENPMD=ON -DWarpX_DIMS=3
+ cmake -S . -B build -DWarpX_DIMS=3
cmake --build build -j 16
The general :ref:`cmake compile-time options and instructions for Python (PICMI) bindings <building-cmake-python>` apply as usual:
@@ -286,7 +286,7 @@ The general :ref:`cmake compile-time options and instructions for Python (PICMI)
cd $HOME/src/warpx
# compile parallel PICMI interfaces with openPMD support and 3D, 2D and RZ
- WARPX_MPI=ON WARPX_OPENPMD=ON BUILD_PARALLEL=16 python3 -m pip install --force-reinstall -v .
+ WARPX_MPI=ON BUILD_PARALLEL=16 python3 -m pip install --force-reinstall -v .
.. _running-cpp-cori:
diff --git a/Docs/source/install/hpc/juwels.rst b/Docs/source/install/hpc/juwels.rst
index c36161c49..206078dda 100644
--- a/Docs/source/install/hpc/juwels.rst
+++ b/Docs/source/install/hpc/juwels.rst
@@ -71,7 +71,7 @@ Then, ``cd`` into the directory ``$HOME/src/warpx`` and use the following comman
cd $HOME/src/warpx
rm -rf build
- cmake -S . -B build -DWarpX_COMPUTE=CUDA -DWarpX_OPENPMD=ON -DWarpX_MPI_THREAD_MULTIPLE=OFF
+ cmake -S . -B build -DWarpX_COMPUTE=CUDA -DWarpX_MPI_THREAD_MULTIPLE=OFF
cmake --build build -j 16
The other :ref:`general compile-time options <install-developers>` apply as usual.
diff --git a/Docs/source/install/hpc/lassen.rst b/Docs/source/install/hpc/lassen.rst
index 3a79c336a..984349792 100644
--- a/Docs/source/install/hpc/lassen.rst
+++ b/Docs/source/install/hpc/lassen.rst
@@ -83,7 +83,7 @@ Then, ``cd`` into the directory ``$HOME/src/warpx`` and use the following comman
cd $HOME/src/warpx
rm -rf build
- cmake -S . -B build -DWarpX_COMPUTE=CUDA -DWarpX_OPENPMD=ON
+ cmake -S . -B build -DWarpX_COMPUTE=CUDA
cmake --build build -j 10
This will build an executable in ``build/bin/``.
diff --git a/Docs/source/install/hpc/ookami.rst b/Docs/source/install/hpc/ookami.rst
index 2dd81fe2c..b02c780ab 100644
--- a/Docs/source/install/hpc/ookami.rst
+++ b/Docs/source/install/hpc/ookami.rst
@@ -76,11 +76,11 @@ Then, ``cd`` into the directory ``$HOME/src/warpx`` and use the following comman
cd $HOME/src/warpx
rm -rf build
- cmake -S . -B build -DWarpX_COMPUTE=OMP -DWarpX_OPENPMD=ON
+ cmake -S . -B build -DWarpX_COMPUTE=OMP
cmake --build build -j 10
# or (currently better performance)
- cmake -S . -B build -DWarpX_COMPUTE=NOACC -DWarpX_OPENPMD=ON
+ cmake -S . -B build -DWarpX_COMPUTE=NOACC
cmake --build build -j 10
The general :ref:`cmake compile-time options <building-cmake>` apply as usual.
diff --git a/Docs/source/install/hpc/perlmutter.rst b/Docs/source/install/hpc/perlmutter.rst
index e8b532ea8..3478bc5fb 100644
--- a/Docs/source/install/hpc/perlmutter.rst
+++ b/Docs/source/install/hpc/perlmutter.rst
@@ -102,7 +102,7 @@ Then, ``cd`` into the directory ``$HOME/src/warpx`` and use the following comman
cd $HOME/src/warpx
rm -rf build
- cmake -S . -B build -DWarpX_OPENPMD=ON -DWarpX_DIMS=3 -DWarpX_COMPUTE=CUDA
+ cmake -S . -B build -DWarpX_DIMS=3 -DWarpX_COMPUTE=CUDA
cmake --build build -j 32
The general :ref:`cmake compile-time options <building-cmake>` apply as usual.
diff --git a/Docs/source/install/hpc/quartz.rst b/Docs/source/install/hpc/quartz.rst
index 94aa3a241..661d43fcd 100644
--- a/Docs/source/install/hpc/quartz.rst
+++ b/Docs/source/install/hpc/quartz.rst
@@ -81,7 +81,7 @@ Then, ``cd`` into the directory ``$HOME/src/warpx`` and use the following comman
cd $HOME/src/warpx
rm -rf build
- cmake -S . -B build -DWarpX_OPENPMD=ON
+ cmake -S . -B build
cmake --build build -j 6
This will build an executable in ``build/bin/``.
diff --git a/Docs/source/install/hpc/spock.rst b/Docs/source/install/hpc/spock.rst
index 78bb08361..03fec9133 100644
--- a/Docs/source/install/hpc/spock.rst
+++ b/Docs/source/install/hpc/spock.rst
@@ -76,7 +76,7 @@ Then, ``cd`` into the directory ``$HOME/src/warpx`` and use the following comman
cd $HOME/src/warpx
rm -rf build
- cmake -S . -B build -DWarpX_OPENPMD=ON -DWarpX_DIMS=3 -DWarpX_COMPUTE=HIP -DAMReX_AMD_ARCH=gfx908 -DMPI_CXX_COMPILER=$(which CC) -DMPI_C_COMPILER=$(which cc) -DMPI_COMPILER_FLAGS="--cray-print-opts=all"
+ cmake -S . -B build -DWarpX_DIMS=3 -DWarpX_COMPUTE=HIP -DAMReX_AMD_ARCH=gfx908 -DMPI_CXX_COMPILER=$(which CC) -DMPI_C_COMPILER=$(which cc) -DMPI_COMPILER_FLAGS="--cray-print-opts=all"
cmake --build build -j 10
The general :ref:`cmake compile-time options <building-cmake>` apply as usual.
diff --git a/Docs/source/install/hpc/summit.rst b/Docs/source/install/hpc/summit.rst
index 13fa48f7c..7b5a67f31 100644
--- a/Docs/source/install/hpc/summit.rst
+++ b/Docs/source/install/hpc/summit.rst
@@ -145,7 +145,7 @@ Then, ``cd`` into the directory ``$HOME/src/warpx`` and use the following comman
cd $HOME/src/warpx
rm -rf build
- cmake -S . -B build -DWarpX_OPENPMD=ON -DWarpX_DIMS=3 -DWarpX_COMPUTE=CUDA
+ cmake -S . -B build -DWarpX_DIMS=3 -DWarpX_COMPUTE=CUDA
cmake --build build -j 6
The general :ref:`cmake compile-time options <building-cmake>` apply as usual.
@@ -159,7 +159,7 @@ We only prefix it to request a node for the compilation (``runNode``), so we can
cd $HOME/src/warpx
# compile parallel PICMI interfaces with openPMD support and 3D, 2D and RZ
- runNode WARPX_MPI=ON WARPX_COMPUTE=CUDA WARPX_PSATD=ON WARPX_OPENPMD=ON BUILD_PARALLEL=32 python3 -m pip install --force-reinstall -v .
+ runNode WARPX_MPI=ON WARPX_COMPUTE=CUDA WARPX_PSATD=ON BUILD_PARALLEL=32 python3 -m pip install --force-reinstall -v .
.. _running-cpp-summit:
diff --git a/setup.py b/setup.py
index fea78791e..8fea070f8 100644
--- a/setup.py
+++ b/setup.py
@@ -184,7 +184,7 @@ env = os.environ.copy()
WARPX_COMPUTE = env.pop('WARPX_COMPUTE', 'OMP')
WARPX_MPI = env.pop('WARPX_MPI', 'OFF')
WARPX_EB = env.pop('WARPX_EB', 'OFF')
-WARPX_OPENPMD = env.pop('WARPX_OPENPMD', 'OFF')
+WARPX_OPENPMD = env.pop('WARPX_OPENPMD', 'ON')
WARPX_PRECISION = env.pop('WARPX_PRECISION', 'DOUBLE')
WARPX_PSATD = env.pop('WARPX_PSATD', 'OFF')
WARPX_QED = env.pop('WARPX_QED', 'ON')