Skip to content

Add support for Exodus IOSS properties related to field interpretation to the Catalyst IOSS Database #1785

Add support for Exodus IOSS properties related to field interpretation to the Catalyst IOSS Database

Add support for Exodus IOSS properties related to field interpretation to the Catalyst IOSS Database #1785

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: SEACAS Variant builds
# Controls when the action will run. Triggers the workflow on push
on:
push:
branches:
- master
pull_request:
branches:
- master
concurrency:
group: ${{ github.workflow}}-${{ github.head_ref }}
cancel-in-progress: true
jobs:
build-deps:
runs-on: ubuntu-latest
strategy:
matrix:
compiler: [ gnu, clang, mpi ]
hdf5: [ V114 ]
netcdf: [ 4.9.2 ]
cgns: [ 4.4.0 ]
steps:
- uses: actions/checkout@v4
- name: Install System dependencies
shell: bash -l {0}
run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev openmpi-bin libopenmpi-dev libboost-all-dev
###
# Installing TPL
###
- name: Cache TPL-${{ matrix.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }}
id: cache-TPL-mpi
uses: actions/cache@v4
with:
path: ~/environments/${{ matrix.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }}
key: TPL-v2-${{ runner.os }}-${{ matrix.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }}
- name: Build TPL-${{ matrix.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }}
if: steps.cache-TPL.outputs.cache-hit != 'true'
run: |
set -x
COMPILER=${{ matrix.compiler }} H5VERSION=${{ matrix.hdf5}} GNU_PARALLEL=OFF INSTALL_PATH=${HOME}/environments/${{ matrix.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }} ./install-tpl.sh
ls ${HOME} && ls ${HOME}/environments && ls ${HOME}/environments/${{ matrix.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }} && ls ${HOME}/environments/${{ matrix.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }}/lib
build:
needs: build-deps
# The type of runner that the job will run on
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
hdf5: [ V114 ]
netcdf: [ 4.9.2 ]
cgns: [ 4.4.0 ]
config:
- {
name: "Debug serial build",
os: ubuntu-latest,
compiler: "gnu",
debug: "YES",
threadsafe: "NO",
fortran: "YES",
use_kokkos: "NO",
use_adios2: "NO",
use_faodel: "NO",
use_metis: "NO",
use_catalyst2: "NO",
gtest: "NO",
extra: "",
sanitizer: "NO" # address, integer, thread, memory, undefined
}
- {
name: "Debug parallel build",
os: ubuntu-latest,
compiler: "mpi",
debug: "YES",
threadsafe: "NO",
fortran: "YES",
use_kokkos: "NO",
use_adios2: "NO",
use_faodel: "NO",
use_metis: "NO",
use_catalyst2: "NO",
gtest: "NO",
extra: "",
sanitizer: "NO" # address, integer, thread, memory, undefined
}
- {
name: "Threadsafe ON, No Fortran",
os: ubuntu-latest,
compiler: "gnu",
debug: "YES",
threadsafe: "YES",
fortran: "NO",
use_kokkos: "NO",
use_adios2: "NO",
use_faodel: "NO",
use_metis: "NO",
use_catalyst2: "NO",
gtest: "NO",
extra: "",
sanitizer: "thread" # address, integer, thread, memory, undefined
}
- {
name: "Threadsafe ON, Parallel, No Fortran",
os: ubuntu-latest,
compiler: "mpi",
debug: "YES",
threadsafe: "YES",
fortran: "NO",
use_kokkos: "NO",
use_adios2: "NO",
use_faodel: "NO",
use_metis: "NO",
use_catalyst2: "NO",
gtest: "NO",
extra: "",
sanitizer: "thread" # address, integer, thread, memory, undefined
}
- {
name: "Sanitize address, no fortran",
os: ubuntu-latest,
compiler: "clang",
debug: "YES",
threadsafe: "NO",
fortran: "NO",
use_kokkos: "NO",
use_adios2: "NO",
use_faodel: "NO",
use_metis: "NO",
use_catalyst2: "NO",
gtest: "NO",
extra: "",
sanitizer: "address" # address, integer, thread, memory, undefined
}
- {
name: "Sanitize undefined",
os: ubuntu-latest,
compiler: "clang",
debug: "YES",
threadsafe: "NO",
fortran: "YES",
use_kokkos: "NO",
use_adios2: "NO",
use_faodel: "NO",
use_metis: "NO",
use_catalyst2: "NO",
gtest: "NO",
extra: "",
sanitizer: "undefined" # address, integer, thread, memory, undefined
}
- {
name: "Sanitize integer",
os: ubuntu-latest,
compiler: "clang",
debug: "YES",
threadsafe: "NO",
fortran: "NO",
use_kokkos: "NO",
use_adios2: "NO",
use_faodel: "NO",
use_metis: "NO",
use_catalyst2: "NO",
gtest: "NO",
extra: "",
sanitizer: "integer" # address, integer, thread, memory, undefined
}
- {
name: "GTest Enabled",
os: ubuntu-latest,
compiler: "gnu",
debug: "YES",
threadsafe: "NO",
fortran: "YES",
use_kokkos: "NO",
use_adios2: "NO",
use_faodel: "NO",
use_metis: "NO",
use_catalyst2: "NO",
gtest: "YES",
extra: "",
sanitizer: "NO" # address, integer, thread, memory, undefined
}
- {
name: "No applications, legacy, or fortran",
os: ubuntu-latest,
compiler: "clang",
debug: "NO",
threadsafe: "NO",
fortran: "NO",
use_kokkos: "NO",
use_adios2: "NO",
use_faodel: "NO",
use_metis: "NO",
use_catalyst2: "NO",
gtest: "NO",
extra: "APPLICATIONS=NO LEGACY=NO",
sanitizer: "NO" # address, integer, thread, memory, undefined
}
- {
name: "CATALYST2, parallel",
os: ubuntu-latest,
compiler: "mpi",
debug: "NO",
threadsafe: "NO",
fortran: "YES",
use_kokkos: "NO",
use_adios2: "NO",
use_faodel: "NO",
use_metis: "NO",
use_catalyst2: "YES",
gtest: "YES",
extra: "",
sanitizer: "NO" # address, integer, thread, memory, undefined
}
- {
name: "KOKKOS, parallel",
os: ubuntu-latest,
compiler: "mpi",
debug: "NO",
threadsafe: "NO",
fortran: "YES",
use_kokkos: "YES",
use_adios2: "NO",
use_faodel: "NO",
use_metis: "NO",
use_catalyst2: "NO",
gtest: "NO",
extra: "",
sanitizer: "NO" # address, integer, thread, memory, undefined
}
- {
name: "No deprecated exodus functions",
os: ubuntu-latest,
compiler: "mpi",
debug: "NO",
threadsafe: "NO",
fortran: "YES",
use_kokkos: "NO",
use_adios2: "NO",
use_faodel: "NO",
use_metis: "NO",
use_catalyst2: "NO",
gtest: "NO",
extra: "OMIT_DEPRECATED=YES",
sanitizer: "NO" # address, integer, thread, memory, undefined
}
- {
name: "Use modern CMake configure of netCDF and HDF5 packages with GTest",
os: ubuntu-latest,
compiler: "mpi",
debug: "NO",
threadsafe: "NO",
fortran: "YES",
use_kokkos: "NO",
use_adios2: "NO",
use_faodel: "NO",
use_metis: "NO",
use_catalyst2: "NO",
gtest: "YES",
extra: "MODERN=YES",
sanitizer: "NO" # address, integer, thread, memory, undefined
}
- {
name: "ADIOS2 enabled",
os: ubuntu-latest,
compiler: "mpi",
debug: "NO",
threadsafe: "NO",
fortran: "YES",
use_kokkos: "NO",
use_adios2: "YES",
use_faodel: "NO",
use_metis: "NO",
use_catalyst2: "NO",
gtest: "YES",
extra: "",
sanitizer: "NO" # address, integer, thread, memory, undefined
}
- {
name: "FAODEL and METIS enabled",
os: ubuntu-latest,
compiler: "mpi",
debug: "NO",
threadsafe: "NO",
fortran: "YES",
use_kokkos: "NO",
use_adios2: "NO",
use_faodel: "YES",
use_metis: "YES",
use_catalyst2: "NO",
gtest: "YES",
extra: "",
sanitizer: "NO" # address, integer, thread, memory, undefined
}
steps:
- uses: actions/checkout@v4
- name: Install System dependencies
shell: bash -l {0}
run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev openmpi-bin libopenmpi-dev libboost-all-dev
- name: Fetch TPL Cache
id: cache-TPL
uses: actions/cache@v4
with:
path: ~/environments/${{ matrix.config.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }}
key: TPL-v2-${{ runner.os }}-${{ matrix.config.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }}
- name: Check Cache
shell: bash -l {0}
run: ls ${HOME} && ls ${HOME}/environments && ls ${HOME}/environments/${{ matrix.config.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }} && ls ${HOME}/environments/${{ matrix.config.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }}/lib
- name: install additional TPL
if: ${{ matrix.config.use_kokkos == 'YES' || matrix.config.use_adios2 == 'YES' || matrix.config.gtest == 'YES' || matrix.config.use_faodel == 'YES' || matrix.config.use_catalyst == 'YES' || matrix.config.use_metis == 'YES' }}
run: |
set -x
COMPILER=${{ matrix.config.compiler }} KOKKOS=${{ matrix.config.use_kokkos }} ADIOS2=${{ matrix.config.use_adios2 }} CATALYST2=${{ matrix.config.use_catalyst2 }} FAODEL=${{ matrix.config.use_faodel }} METIS=${{ matrix.config.use_metis }} GNU_PARALLEL=OFF GTEST=${{ matrix.config.gtest }} INSTALL_PATH=${HOME}/environments/${{ matrix.config.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }} ./install-tpl.sh
ls ${HOME} && ls ${HOME}/environments && ls ${HOME}/environments/${{ matrix.config.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }} && ls ${HOME}/environments/${{ matrix.config.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }}/lib
###
# Configure and build
###
- name: Run cmake
shell: bash -l {0}
run: |
echo $HOME
mkdir build
cd build
NUMPROCS=2 ${{ matrix.config.extra }} THREADSAFE=${{ matrix.config.threadsafe }} DEBUG=${{ matrix.config.debug }} FORTRAN=${{ matrix.config.fortran }} SANITIZER=${{ matrix.config.sanitizer }} COMPILER=${{ matrix.config.compiler }} INSTALL_PATH=${HOME}/environments/${{ matrix.config.compiler }}-${{ matrix.hdf5 }}-${{ matrix.netcdf }}-${{ matrix.cgns }} bash ../cmake-config
- name: Build
shell: bash -l {0}
run: |
cd build
make -j 4
if: ${{ success() }}
- name: Install
shell: bash -l {0}
run: |
cd build
make -j 4 install
if: ${{ success() }}
- name: Run Non-sanitized Tests
shell: bash -l {0}
run: |
cd build
ctest -j 4 --output-on-failure
if: ${{ success() && matrix.config.sanitizer == 'NO' && matrix.config.threadsafe == 'NO' }}
- name: Run sanitized/threadsafe Tests
shell: bash -l {0}
run: |
cd build
sudo sysctl vm.mmap_rnd_bits=28
ctest -j 4 --output-on-failure --exclude-regex test_exo
if: ${{ success() && (matrix.config.sanitizer != 'NO' || matrix.config.threadsafe != 'NO') }}