test commit #465
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| pull_request: | |
| branches: | |
| - master | |
| jobs: | |
| build-all: | |
| name: "Build GHEX and run unit tests" | |
| runs-on: ubuntu-latest | |
| container: ${{ matrix.config.container }} | |
| strategy: | |
| matrix: | |
| config: | |
| - { | |
| name: "cpu-gcc-mpi-atlas-parmetis", | |
| container: "ghcr.io/gridtools/gridtools-base:gcc-9-ucx-mpi-atlas-parmetis", | |
| cc: "gcc", | |
| cxx: "g++", | |
| fortran: "ON", | |
| gpu: "OFF", | |
| gpu_type: "AUTO", | |
| run: "ON", | |
| atlas: "ON", | |
| parmetis: "ON", | |
| backend: "MPI", | |
| } | |
| - { | |
| name: "cpu-gcc-ucx-atlas-parmetis", | |
| container: "ghcr.io/gridtools/gridtools-base:gcc-9-ucx-mpi-atlas-parmetis", | |
| cc: "gcc", | |
| cxx: "g++", | |
| fortran: "ON", | |
| gpu: "OFF", | |
| gpu_type: "AUTO", | |
| run: "ON", | |
| atlas: "ON", | |
| parmetis: "ON", | |
| backend: "UCX", | |
| } | |
| - { | |
| name: "cpu-clang-mpi-atlas-parmetis", | |
| container: "ghcr.io/gridtools/gridtools-base:gcc-9-ucx-mpi-atlas-parmetis-hip", | |
| cc: "/opt/rocm/llvm/bin/clang", | |
| cxx: "/opt/rocm/llvm/bin/clang++", | |
| fortran: "OFF", | |
| gpu: "OFF", | |
| gpu_type: "AUTO", | |
| run: "ON", | |
| atlas: "ON", | |
| parmetis: "ON", | |
| backend: "MPI", | |
| } | |
| - { | |
| name: "cpu-clang-ucx-atlas-parmetis", | |
| container: "ghcr.io/gridtools/gridtools-base:gcc-9-ucx-mpi-atlas-parmetis-hip", | |
| cc: "/opt/rocm/llvm/bin/clang", | |
| cxx: "/opt/rocm/llvm/bin/clang++", | |
| fortran: "OFF", | |
| gpu: "OFF", | |
| gpu_type: "AUTO", | |
| run: "ON", | |
| atlas: "ON", | |
| parmetis: "ON", | |
| backend: "UCX", | |
| } | |
| - { | |
| name: "gpu-hip-mpi-atlas-parmetis", | |
| container: "ghcr.io/gridtools/gridtools-base:gcc-9-ucx-mpi-atlas-parmetis-hip", | |
| cc: "/opt/rocm/llvm/bin/clang", | |
| cxx: "/opt/rocm/llvm/bin/clang++", | |
| fortran: "OFF", | |
| gpu: "ON", | |
| gpu_type: "AMD", | |
| run: "OFF", | |
| atlas: "ON", | |
| parmetis: "ON", | |
| backend: "MPI", | |
| } | |
| - { | |
| name: "gpu-cuda-mpi-atlas-parmetis", | |
| container: "ghcr.io/gridtools/gridtools-base:gcc-9-ucx-mpi-atlas-parmetis-cuda-11", | |
| cc: "gcc", | |
| cxx: "g++", | |
| fortran: "ON", | |
| gpu: "ON", | |
| gpu_type: "NVIDIA", | |
| run: "OFF", | |
| atlas: "ON", | |
| parmetis: "ON", | |
| backend: "MPI", | |
| } | |
| env: | |
| CC: ${{ matrix.config.cc }} | |
| CXX: ${{ matrix.config.cxx }} | |
| GHEX_USE_GPU: ${{ matrix.config.gpu }} | |
| GHEX_GPU_TYPE: ${{ matrix.config.gpu_type }} | |
| eckit_DIR: ${{ matrix.eckit }} | |
| Atlas_DIR: ${{ matrix.atlas }} | |
| SHLVL: "1" | |
| OMPI_ALLOW_RUN_AS_ROOT: "1" | |
| OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: "1" | |
| CTEST_OUTPUT_ON_FAILURE: "1" | |
| UCX_DIR: "/opt/ucx" | |
| #ECKIT_DIR: "/opt/eckit" | |
| #ATLAS_DIR: "/opt/atlas" | |
| METIS_INCLUDE_DIR: "/opt/metis/include" | |
| METIS_LIB_DIR: "/opt/metis/lib" | |
| PARMETIS_INCLUDE_DIR: "/opt/parmetis/include" | |
| PARMETIS_LIB_DIR: "/opt/parmetis/lib" | |
| steps: | |
| - name: Install packages | |
| run: | | |
| apt update | |
| apt-get -y install python3-dev python3-venv python3-pybind11 ninja-build | |
| - name: Clone w/ submodules | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: recursive | |
| - name: Configure | |
| run: | | |
| mkdir -p build | |
| cd build | |
| cmake .. \ | |
| -GNinja \ | |
| -DCMAKE_BUILD_TYPE=Debug \ | |
| -DGHEX_GIT_SUBMODULE=OFF \ | |
| -DGHEX_USE_BUNDLED_LIBS=ON \ | |
| -DGHEX_USE_BUNDLED_GRIDTOOLS=ON \ | |
| -DUCX_DIR=${UCX_DIR} \ | |
| -DGHEX_TRANSPORT_BACKEND=${{ matrix.config.backend }} \ | |
| -DGHEX_USE_BUNDLED_OOMPH=ON \ | |
| -DGHEX_WITH_TESTING=ON \ | |
| -DGHEX_BUILD_PYTHON_BINDINGS=ON \ | |
| -DGHEX_BUILD_FORTRAN=${{ matrix.config.fortran }} \ | |
| -DGHEX_ENABLE_ATLAS_BINDINGS=${{ matrix.config.atlas }} \ | |
| -DGHEX_ENABLE_PARMETIS_BINDINGS=${{ matrix.config.parmetis }} \ | |
| -DMETIS_INCLUDE_DIR=${METIS_INCLUDE_DIR} \ | |
| -DMETIS_LIB_DIR=${METIS_LIB_DIR} \ | |
| -DPARMETIS_INCLUDE_DIR=${PARMETIS_INCLUDE_DIR} \ | |
| -DPARMETIS_LIB_DIR=${PARMETIS_LIB_DIR} \ | |
| -DMPIEXEC_PREFLAGS=--oversubscribe \ | |
| -DGHEX_USE_GPU=${{ matrix.config.gpu }} \ | |
| -DGHEX_GPU_TYPE=${{ matrix.config.gpu_type }} | |
| - name: Build | |
| run: cmake --build build --parallel 4 | |
| - if: ${{ matrix.config.run == 'ON' }} | |
| name: Execute tests | |
| run: cd build && ctest | |