diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 79098c7418..637da24f5d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -41,10 +41,10 @@ A clear and concise description of what you expected to happen. - installed openPMD-api via: [conda-forge, spack, pip, from source, module system, ...] - operating system: [name and version] - machine: [Are you running on a public cluster? It's likely we compute on it as well!] - - name and version of Python implementation: [e.g. CPython 3.7] - - version of HDF5: [e.g. 1.10.1] + - name and version of Python implementation: [e.g. CPython 3.8] + - version of HDF5: [e.g. 1.12.0] - version of ADIOS1: [e.g. 1.13.1] - - version of ADIOS2: [e.g. 2.5.0] + - version of ADIOS2: [e.g. 2.6.0] - name and version of MPI: [e.g. OpenMPI 3.1.5] **Additional context** diff --git a/.github/ci/spack/packages.yaml b/.github/ci/spack/packages.yaml index 85084194d4..4cb4bb48d2 100644 --- a/.github/ci/spack/packages.yaml +++ b/.github/ci/spack/packages.yaml @@ -58,8 +58,12 @@ packages: adios: variants: ~zfp ~sz ~lz4 ~blosc adios2: - version: [2.5.0] - variants: ~zfp ~sz ~png ~dataman ~python ~fortran ~ssc + variants: ~zfp ~sz ~png ~dataman ~python ~fortran ~ssc ~shared ~bzip2 + # ~shared is a work-around macOS dylib rpath issue for ADIOS2 + # https://github.com/ornladios/ADIOS2/issues/2316 + # https://spack.readthedocs.io/en/latest/config_yaml.html + # ~bzip2 + # Library not loaded: @rpath/libbz2.1.dylib python: version: [3.5.5, 3.6.3, 3.7.1, 3.7.2, 3.8.0] paths: diff --git a/.travis.yml b/.travis.yml index 919ee8c98a..ef9df068c2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,6 +17,7 @@ env: - SPACK_ROOT: $HOME/.cache/spack - PATH: $PATH:$HOME/.cache/spack/bin - BUILD_TYPE: "Debug" + - ADIOS2_VERSION=@2.6.0 - PYBIND11_VERSION=@2.3.0 - USE_SHARED: ON @@ -196,7 +197,7 @@ jobs: $EXTRA_CMAKE_FLAGS -DCMAKE_INSTALL_PREFIX=$HOME/openPMD-test-install $TRAVIS_BUILD_DIR - - make -j 2 + - make VERBOSE=ON # run tests # pybind11: work-around for missing symbols with sanitizers # /usr/local/clang-7.0.0/lib/clang/7.0.0/lib/linux/libclang_rt.asan-x86_64.so @@ -204,6 +205,9 @@ jobs: - if [ "$USE_PYTHON" == "ON" ] && [ ! -z ${ASAN_OPTIONS+x} ]; then export LD_PRELOAD=/usr/local/clang-7.0.0/lib/clang/7.0.0/lib/linux/libclang_rt.asan-x86_64.so; fi + - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then + otool -l /Users/travis/build/bin/openpmd-ls; + fi - CTEST_OUTPUT_ON_FAILURE=1 travis_wait make test - if [ ! -z ${LD_PRELOAD+x} ]; then unset LD_PRELOAD; @@ -399,12 +403,12 @@ jobs: script: *script-cpp-unit # GCC 9.3.0 - <<: *test-cpp-unit - name: gcc@9.3.0 -MPI -PY +H5 +ADIOS1 +ADIOS2@2.5.0 + name: gcc@9.3.0 -MPI -PY +H5 +ADIOS1 +ADIOS2@2.6.0 dist: bionic language: python python: "3.8" env: - - CXXSPEC="%gcc@9.3.0" USE_MPI=OFF USE_PYTHON=OFF USE_HDF5=ON USE_ADIOS1=ON USE_ADIOS2=ON ADIOS2_VERSION=@2.5.0 USE_SAMPLES=ON + - CXXSPEC="%gcc@9.3.0" USE_MPI=OFF USE_PYTHON=OFF USE_HDF5=ON USE_ADIOS1=ON USE_ADIOS2=ON ADIOS2_VERSION=@2.6.0 USE_SAMPLES=ON compiler: gcc addons: apt: diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 2ceb083233..1e68d1bce4 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -53,6 +53,7 @@ Other """"" - CMake: require version 3.12.0+ #755 +- ADIOS2: require version 2.6.0+ #754 - separate header for export macros #704 - rename ``AccessType``/``Access_Type`` to ``Access`` #740 #743 #744 - CI: diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d7f2ceea8..8ffff2ae80 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -232,14 +232,14 @@ endif() # external library: ADIOS2 (optional) if(openPMD_USE_ADIOS2 STREQUAL AUTO) - find_package(ADIOS2 2.5.0 CONFIG) + find_package(ADIOS2 2.6.0 CONFIG) if(ADIOS2_FOUND) set(openPMD_HAVE_ADIOS2 TRUE) else() set(openPMD_HAVE_ADIOS2 FALSE) endif() elseif(openPMD_USE_ADIOS2) - find_package(ADIOS2 2.5.0 REQUIRED CONFIG) + find_package(ADIOS2 2.6.0 REQUIRED CONFIG) set(openPMD_HAVE_ADIOS2 TRUE) else() set(openPMD_HAVE_ADIOS2 FALSE) @@ -516,7 +516,11 @@ endif() # ADIOS2 Backend if(openPMD_HAVE_ADIOS2) - target_link_libraries(openPMD PUBLIC adios2::adios2) + if(openPMD_HAVE_MPI) + target_link_libraries(openPMD PUBLIC adios2::cxx11_mpi) + else() + target_link_libraries(openPMD PUBLIC adios2::cxx11) + endif() endif() # Runtime parameter and API status checks ("asserts") diff --git a/Dockerfile b/Dockerfile index e058aff066..28ff16a479 100644 --- a/Dockerfile +++ b/Dockerfile @@ -64,7 +64,7 @@ RUN curl -sLo adios-1.13.1.tar.gz http://users.nccs.gov/~pnorbert/adios-1 && make \ && make install -RUN curl -sLo adios2-2.5.0.tar.gz https://github.com/ornladios/ADIOS2/archive/v2.5.0.tar.gz \ +RUN curl -sLo adios2-2.6.0.tar.gz https://github.com/ornladios/ADIOS2/archive/v2.6.0.tar.gz \ && file adios2*.tar.gz \ && tar -xzf adios2*.tar.gz \ && rm adios2*.tar.gz \ diff --git a/README.md b/README.md index de76fde0dd..2f810f76e9 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ I/O backends: * [JSON](https://en.wikipedia.org/wiki/JSON) * [HDF5](https://support.hdfgroup.org/HDF5) 1.8.13+ (optional) * [ADIOS1](https://www.olcf.ornl.gov/center-projects/adios) 1.13.1+ (optional) -* [ADIOS2](https://github.com/ornladios/ADIOS2) 2.5.0+ (optional) +* [ADIOS2](https://github.com/ornladios/ADIOS2) 2.6.0+ (optional) while those can be built either with or without: * MPI 2.1+, e.g. OpenMPI 1.6.5+ or MPICH2 diff --git a/docs/source/dev/dependencies.rst b/docs/source/dev/dependencies.rst index 71d096d3f6..056f1cd01d 100644 --- a/docs/source/dev/dependencies.rst +++ b/docs/source/dev/dependencies.rst @@ -28,7 +28,7 @@ Optional: I/O backends * `JSON `_ * `HDF5 `_ 1.8.13+ * `ADIOS1 `_ 1.13.1+ -* `ADIOS2 `_ 2.5.0+ +* `ADIOS2 `_ 2.6.0+ while those can be build either with or without: