Skip to content

Workaround for independent writes to Iterations in parallel, better detection of BP5 which in turn uncovers more instances of the first issue #3286

Workaround for independent writes to Iterations in parallel, better detection of BP5 which in turn uncovers more instances of the first issue

Workaround for independent writes to Iterations in parallel, better detection of BP5 which in turn uncovers more instances of the first issue #3286

Workflow file for this run

name: 🐧 Linux
on: [push, pull_request]
concurrency:
group: ${{ github.ref }}-${{ github.head_ref }}-linux
cancel-in-progress: true
jobs:
clang7_nopy_nompi_h5_libcpp:
runs-on: ubuntu-20.04
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
- name: Spack Cache
uses: actions/cache@v3
with: {path: /opt/spack, key: clang7_nopy_nompi_h5_libcpp_v2}
- name: Install
run: |
sudo apt-get update
sudo apt-get install clang-7 libc++-7-dev libc++abi-7-dev
sudo .github/workflows/dependencies/install_spack
- name: Build
env: {CC: clang-7, CXX: clang++-7, CXXFLAGS: -stdlib=libc++ -Werror -Wno-ignored-attributes -Wno-unused-const-variable}
# -Wno-ignored-attributes -Wno-unused-const-variable: clang-6 has a
# false positive on src/auxiliary/Filesystem.cpp
# [[maybe_unused]] MPI_Datatype const MPI_Types< unsigned >::value = MPI_UNSIGNED;
run: |
eval $(spack env activate --sh .github/ci/spack-envs/clang7_nopy_nompi_h5_libcpp/)
spack install
share/openPMD/download_samples.sh build
cmake -S . -B build \
-DopenPMD_USE_PYTHON=OFF \
-DopenPMD_USE_MPI=OFF \
-DopenPMD_USE_HDF5=ON \
-DopenPMD_USE_INVASIVE_TESTS=ON \
-DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build build --parallel 2
cd build
ctest --output-on-failure
clang7_nopy_ompi_h5_ad2_libcpp:
runs-on: ubuntu-20.04
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
- name: Spack Cache
uses: actions/cache@v3
with: {path: /opt/spack, key: clang7_nopy_ompi_h5_ad2_libcpp_v2}
- name: Install
run: |
sudo apt-get update
sudo apt-get install clang-7 libc++-7-dev libc++abi-7-dev gfortran libopenmpi-dev python3
sudo .github/workflows/dependencies/install_spack
- name: Build
env: {CC: clang-7, CXX: clang++-7, CXXFLAGS: -stdlib=libc++ -Werror -Wno-ignored-attributes -Wno-unused-const-variable}
# -Wno-ignored-attributes -Wno-unused-const-variable: clang-6 has a
# false positive on src/auxiliary/Filesystem.cpp
# [[maybe_unused]] MPI_Datatype const MPI_Types< unsigned >::value = MPI_UNSIGNED;
run: |
cmake --version
mpiexec --version
perl --version
python --version
eval $(spack env activate --sh .github/ci/spack-envs/clang7_nopy_ompi_h5_ad2_libcpp/)
spack install
share/openPMD/download_samples.sh build
cmake -S . -B build \
-DopenPMD_USE_PYTHON=OFF \
-DopenPMD_USE_MPI=ON \
-DopenPMD_USE_HDF5=ON \
-DopenPMD_USE_ADIOS2=ON \
-DopenPMD_USE_INVASIVE_TESTS=ON \
-DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build build --parallel 2
cd build
ctest --output-on-failure
find . -name *.bp | xargs -n1 -P1 -I {} rm -rf {}
find . -name *.bp.dir | xargs -n1 -P1 -I {} rm -rf {}
ctest --output-on-failure
clang7_nopy_ompi_h5_ad2:
runs-on: ubuntu-20.04
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
- name: Spack Cache
uses: actions/cache@v3
with: {path: /opt/spack, key: clang7_nopy_ompi_h5_ad2_v2 }
- name: Install
run: |
sudo apt-get update
sudo apt-get install clang-7 gfortran libopenmpi-dev python3
sudo .github/workflows/dependencies/install_spack
- name: Build
env: {CC: clang-7, CXX: clang++-7, CXXFLAGS: -Werror}
run: |
eval $(spack env activate --sh .github/ci/spack-envs/clang7_nopy_ompi_h5_ad2/)
spack install
share/openPMD/download_samples.sh build
cmake -S . -B build \
-DopenPMD_USE_PYTHON=OFF \
-DopenPMD_USE_MPI=ON \
-DopenPMD_USE_HDF5=ON \
-DopenPMD_USE_ADIOS2=ON \
-DopenPMD_USE_INVASIVE_TESTS=ON \
-DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build build --parallel 2
cd build
ctest --output-on-failure
# TODO
# clang7_py36_nompi_h5_ad2_libstdc++
clang14_py311_nompi_h5_ad2:
runs-on: ubuntu-22.04
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
- name: Spack Cache
uses: actions/cache@v3
with: {path: /opt/spack, key: clang14_py311_nompi_h5_ad2_v2 }
- name: Install
run: |
sudo apt update
sudo apt install clang-14 cmake gfortran libhdf5-dev python3.11 python3.11-dev wget
wget https://bootstrap.pypa.io/get-pip.py
python3.11 get-pip.py
python3.11 -m pip install numpy pandas
sudo .github/workflows/dependencies/install_spack
- name: Build
env: {CC: clang-14, CXX: clang++-14, CXXFLAGS: -Werror}
run: |
eval $(spack env activate --sh .github/ci/spack-envs/clang14_py311_nompi_h5_ad2/)
spack install
share/openPMD/download_samples.sh build
cmake -S . -B build \
-DopenPMD_USE_PYTHON=ON \
-DopenPMD_USE_MPI=OFF \
-DopenPMD_USE_HDF5=ON \
-DopenPMD_USE_ADIOS2=ON \
-DopenPMD_USE_INVASIVE_TESTS=ON \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DPython_EXECUTABLE=$(which python3.11)
cmake --build build --parallel 2
ctest --test-dir build --output-on-failure
# ADIOS2 v2.7.1
clang8_py38_mpich_h5_ad2:
runs-on: ubuntu-20.04
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
- name: Spack Cache
uses: actions/cache@v3
with: {path: /opt/spack, key: clang8_py38_mpich_h5_ad2_newLayout_v2 }
- name: Install
run: |
sudo apt-get update
sudo apt-get install clang-8 gfortran libmpich-dev python3
sudo .github/workflows/dependencies/install_spack
- name: Build
env: {CC: clang-8, CXX: clang++-8, CXXFLAGS: -Werror}
run: |
cmake --version
mpiexec --version
perl --version
python --version
eval $(spack env activate --sh .github/ci/spack-envs/clang8_py38_mpich_h5_ad2/)
spack install
share/openPMD/download_samples.sh build
cmake -S . -B build \
-DopenPMD_USE_PYTHON=OFF \
-DopenPMD_USE_MPI=ON \
-DopenPMD_USE_HDF5=ON \
-DopenPMD_USE_ADIOS2=ON \
-DopenPMD_USE_INVASIVE_TESTS=ON
cmake --build build --parallel 2
cd build
ctest --output-on-failure
# TODO: (old Travis-CI coverage)
# clang10_py38_ompi_h5_1-10-6_ad2_release
# ..._h5coll with OPENPMD_HDF5_INDEPENDENT: OFF
# TODO: (old Travis-CI coverage)
# gcc-4.9.4_nopy_nompi_h5_ad2
# gcc-4.9.4_nopy_ompi_h5_ad2
# gcc-9.3.0_nopy_nompi_h5_ad2-2.6.0
# gcc-7.4.0_nopy_ompi_h5_h5coll
# gcc-6.5.0_py35_nompi_h5-1.13.1
# gcc-8.1.0_py37_nompi_h5_static
# gcc-6.5.0_py36_nompi_h5-1.8.13
# gcc-4.8.5_py35_nompi_h5
# gcc-7.4.0_py_ompi_h5_ad2_coveralls
gcc7_py36_pd_dd_ompi_h5_ad2:
runs-on: ubuntu-20.04
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
- name: Spack Cache
uses: actions/cache@v3
with: {path: /opt/spack, key: gcc7_py36_ompi_h5_ad2_v2 }
- name: Install
run: |
sudo apt-get update
sudo apt-get install g++-7 gfortran libopenmpi-dev python3 python3-setuptools
sudo .github/workflows/dependencies/install_spack
python3 -m pip install -U pip
python3 -m pip install -U numpy
python3 -m pip install -U mpi4py
python3 -m pip install -U pandas
python3 -m pip install -U dask
python3 -m pip install -U pyarrow
- name: Build
env: {CC: gcc-7, CXX: g++-7, CXXFLAGS: -Werror}
run: |
eval $(spack env activate --sh .github/ci/spack-envs/gcc7_py36_ompi_h5_ad2/)
spack install
share/openPMD/download_samples.sh build
cmake -S . -B build \
-DopenPMD_USE_PYTHON=ON \
-DopenPMD_USE_MPI=ON \
-DopenPMD_USE_HDF5=ON \
-DopenPMD_USE_ADIOS2=ON \
-DopenPMD_USE_INVASIVE_TESTS=ON
cmake --build build --parallel 2
cd build
ctest --output-on-failure
gcc9_py38_pd_nompi_h5_ad2_libcpp:
runs-on: ubuntu-20.04
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
- name: Install
run: |
sudo apt-get update
sudo apt-get install g++ libopenmpi-dev libhdf5-openmpi-dev python3 python3-numpy python3-mpi4py python3-pandas
# TODO ADIOS2
- name: Build
env: {CXXFLAGS: -Werror, PKG_CONFIG_PATH: /usr/lib/x86_64-linux-gnu/pkgconfig}
run: |
share/openPMD/download_samples.sh build
cmake -S . -B build \
-DopenPMD_USE_PYTHON=ON \
-DopenPMD_USE_MPI=ON \
-DopenPMD_USE_HDF5=ON \
-DopenPMD_USE_INVASIVE_TESTS=ON
cmake --build build --parallel 2
cd build
ctest --output-on-failure
musllinux_py10:
runs-on: ubuntu-20.04
if: github.event.pull_request.draft == false
container:
image: quay.io/pypa/musllinux_1_1_x86_64
steps:
- uses: actions/checkout@v3
- name: Install
run: |
apk update
apk add hdf5-dev
python3.10 -m pip install numpy
- name: Build
env: {CXXFLAGS: -Werror}
run: |
share/openPMD/download_samples.sh build
cmake -S . -B build \
-DopenPMD_USE_PYTHON=ON \
-DopenPMD_USE_MPI=OFF \
-DopenPMD_USE_HDF5=ON \
-DopenPMD_USE_INVASIVE_TESTS=ON \
-DPython_EXECUTABLE=$(which python3.10)
cmake --build build --parallel 2
cd build
ctest --output-on-failure
conda_ompi_all:
runs-on: ubuntu-20.04
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
- uses: conda-incubator/setup-miniconda@v3
name: Setup conda
with:
auto-update-conda: true
activate-environment: testing
auto-activate-base: false
channels: conda-forge,defaults
channel-priority: true
- name: Install
shell: bash -eo pipefail -l {0}
run: |
conda install -c conda-forge -y mamba
mamba env create --file conda.yml
- name: Build
shell: bash -eo pipefail -l {0}
env: {CXXFLAGS: -Werror}
run: |
source activate openpmd-api-dev
share/openPMD/download_samples.sh build
cmake -S . -B build \
-DopenPMD_USE_PYTHON=ON \
-DopenPMD_USE_MPI=ON \
-DopenPMD_USE_HDF5=ON \
-DopenPMD_USE_ADIOS2=ON \
-DopenPMD_USE_INVASIVE_TESTS=ON \
-DMPIEXEC_EXECUTABLE=".github/workflows/mpirun_workaround.sh"
cmake --build build --parallel 2
cd build
ctest --output-on-failure