diff options
author | 2021-12-21 10:54:20 -0800 | |
---|---|---|
committer | 2021-12-21 10:54:20 -0800 | |
commit | 67cbc471bdd94217d34ee2e8b8ccda5dc93cfa7d (patch) | |
tree | c53118ff7774d077b03c7026050a7861bf0cd614 | |
parent | 038af1cc1ebf250d0633f21d4a2579c1bad03f34 (diff) | |
download | WarpX-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.txt | 2 | ||||
-rw-r--r-- | Docs/source/developers/gnumake/openpmd.rst | 2 | ||||
-rw-r--r-- | Docs/source/install/cmake.rst | 8 | ||||
-rw-r--r-- | Docs/source/install/hpc/cori.rst | 4 | ||||
-rw-r--r-- | Docs/source/install/hpc/juwels.rst | 2 | ||||
-rw-r--r-- | Docs/source/install/hpc/lassen.rst | 2 | ||||
-rw-r--r-- | Docs/source/install/hpc/ookami.rst | 4 | ||||
-rw-r--r-- | Docs/source/install/hpc/perlmutter.rst | 2 | ||||
-rw-r--r-- | Docs/source/install/hpc/quartz.rst | 2 | ||||
-rw-r--r-- | Docs/source/install/hpc/spock.rst | 2 | ||||
-rw-r--r-- | Docs/source/install/hpc/summit.rst | 4 | ||||
-rw-r--r-- | setup.py | 2 |
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: @@ -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') |