Skip to content

Commit

Permalink
ADIOS2 2.6.0+ (#754)
Browse files Browse the repository at this point in the history
Require ADIOS2 v2.6.0+ for our recently contributed support for complex attribute types.

This also bumps our CMake dependency to 3.12.0+.

Required for #639

Blocked by ornladios/ADIOS2#2316
  • Loading branch information
ax3l authored Jul 30, 2020
1 parent 5f0f584 commit 6647278
Show file tree
Hide file tree
Showing 8 changed files with 27 additions and 14 deletions.
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -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**
Expand Down
8 changes: 6 additions & 2 deletions .github/ci/spack/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
10 changes: 7 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -196,14 +197,17 @@ 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
# /usr/local/clang-7.0.0/lib/clang/7.0.0/lib/linux/libclang_rt.ubsan_minimal-x86_64.so
- 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;
Expand Down Expand Up @@ -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:
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
10 changes: 7 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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")
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion docs/source/dev/dependencies.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Optional: I/O backends
* `JSON <https://en.wikipedia.org/wiki/JSON>`_
* `HDF5 <https://support.hdfgroup.org/HDF5>`_ 1.8.13+
* `ADIOS1 <https://www.olcf.ornl.gov/center-projects/adios>`_ 1.13.1+
* `ADIOS2 <https://github.com/ornladios/ADIOS2>`_ 2.5.0+
* `ADIOS2 <https://github.com/ornladios/ADIOS2>`_ 2.6.0+

while those can be build either with or without:

Expand Down

0 comments on commit 6647278

Please sign in to comment.