Skip to content

Weekly Perlmutter Testing #78

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: cws/pumipicDps
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .github/actions/install-repo/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Install-Repo

inputs:
repo-name:
required: true
repo-path:
required: true
repo-ref:
required: true
options:
required: true
cache:
required: true
submodules:
default: ''

runs:
using: "composite"
steps:

- name: Check Cache
if: ${{ inputs.cache == 'true'}}
uses: actions/cache@v3
id: check-cache
with:
key: build-${{ inputs.repo-name }}
path: ${{ runner.temp }}/build-${{ inputs.repo-name }}

- name: Checkout Repo
uses: actions/checkout@v3
with:
repository: ${{ inputs.repo-path }}
submodules: ${{ inputs.submodules }}
ref: ${{ inputs.repo-ref }}
path: ${{ inputs.repo-name }}

- name: Configure CMake
if: ${{ !steps.check-cache.outputs.cache-hit }}
shell: bash
run: cmake -S $GITHUB_WORKSPACE/${{ inputs.repo-name }} -B ${{ runner.temp }}/build-${{ inputs.repo-name }}
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-${{ inputs.repo-name }}/install
${{ inputs.options }}

- name: Build Cmake
if: ${{ !steps.check-cache.outputs.cache-hit }}
shell: bash
run: cmake --build ${{ runner.temp }}/build-${{ inputs.repo-name }} -j8 --target install
282 changes: 82 additions & 200 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:

jobs:
buildTest:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04

defaults:
run:
Expand All @@ -32,212 +32,94 @@ jobs:
- name: Install NetCDF-Fortran
run: sudo apt-get install libnetcdff-dev

# Build Kokkos
- uses: actions/checkout@v4

- name: Cache Kokkos Build
uses: actions/cache@v3
id: build-kokkos
- name: build kokkos
uses: ./.github/actions/install-repo
with:
key: build-kokkos
path: ${{ runner.temp }}/build-kokkos

- name: Kokkos Checkout repo
if: ${{ steps.build-kokkos.outputs.cache-hit != 'true' }}
uses: actions/checkout@v3
repo-name: 'kokkos'
repo-path: 'kokkos/kokkos'
repo-ref: '4.5.00'
cache: true
options: '-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
-DKokkos_ENABLE_SERIAL=ON
-DKokkos_ENABLE_OPENMP=off
-DKokkos_ENABLE_CUDA=off
-DKokkos_ENABLE_CUDA_LAMBDA=off'

- name: build omega_h
uses: ./.github/actions/install-repo
with:
repository: kokkos/kokkos
ref: 4.1.00
path: kokkos

- name: Kokkos Create Directory
if: ${{ steps.build-kokkos.outputs.cache-hit != 'true' }}
run: cmake -E make_directory ${{ runner.temp }}/build-kokkos

- name: Kokkos Configure CMake
if: ${{ steps.build-kokkos.outputs.cache-hit != 'true' }}
run: cmake -S $GITHUB_WORKSPACE/kokkos -B ${{ runner.temp }}/build-kokkos
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-kokkos/install
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
-DKokkos_ENABLE_SERIAL=ON
-DKokkos_ENABLE_OPENMP=off
-DKokkos_ENABLE_CUDA=off
-DKokkos_ENABLE_CUDA_LAMBDA=off
-DKokkos_ENABLE_DEBUG=on

- name: Kokkos Build
if: ${{ steps.build-kokkos.outputs.cache-hit != 'true' }}
run: cmake --build ${{ runner.temp }}/build-kokkos -j8 --target install

# Build EnGPar

- name: Cache Engpar Build
uses: actions/cache@v3
id: build-engpar
with:
key: build-engpar
path: ${{ runner.temp }}/build-engpar

- name: EnGPar Checkout repo
if: ${{ steps.build-engpar.outputs.cache-hit != 'true' }}
uses: actions/checkout@v3
with:
repository: SCOREC/EnGPar
path: engpar

- name: EnGPar Create Directory
if: ${{ steps.build-engpar.outputs.cache-hit != 'true' }}
run: cmake -E make_directory ${{ runner.temp }}/build-engpar

- name: EnGPar Configure CMake
if: ${{ steps.build-engpar.outputs.cache-hit != 'true' }}
run: cmake -S $GITHUB_WORKSPACE/engpar -B ${{ runner.temp }}/build-engpar
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-engpar/install
-DCMAKE_C_COMPILER="mpicc"
-DCMAKE_CXX_COMPILER="mpicxx"
-DCMAKE_CXX_FLAGS="-std=c++11"
-DENABLE_PARMETIS=OFF
-DENABLE_PUMI=OFF
-DIS_TESTING=OFF

- name: EnGPar Build
if: ${{ steps.build-engpar.outputs.cache-hit != 'true' }}
run: cmake --build ${{ runner.temp }}/build-engpar -j8 --target install

# Build Omega_h

- name: Cache Omega_h Build
uses: actions/cache@v3
id: build-omega_h
with:
key: build-omega_h
path: ${{ runner.temp }}/build-omega_h

- name: Omega_h Checkout repo
if: ${{ steps.build-omega_h.outputs.cache-hit != 'true' }}
uses: actions/checkout@v3
repo-name: 'omega_h'
repo-path: 'SCOREC/omega_h'
repo-ref: ''
cache: true
options: '-DCMAKE_BUILD_TYPE=Release
-DBUILD_SHARED_LIBS=OFF
-DOmega_h_USE_Kokkos=ON
-DOmega_h_USE_CUDA=off
-DOmega_h_USE_MPI=on
-DBUILD_TESTING=off
-DCMAKE_C_COMPILER=mpicc
-DCMAKE_CXX_COMPILER=mpicxx
-DKokkos_PREFIX=${{ runner.temp }}/build-kokkos/install/lib/cmake'

- name: build Engpar
uses: ./.github/actions/install-repo
with:
repository: SCOREC/omega_h
ref: scorec-v10.8.0
path: omega_h

- name: Omega_h Create Directory
if: ${{ steps.build-omega_h.outputs.cache-hit != 'true' }}
run: cmake -E make_directory ${{ runner.temp }}/build-omega_h

- name: Omega_h Configure CMake
if: ${{ steps.build-omega_h.outputs.cache-hit != 'true' }}
run: cmake -S $GITHUB_WORKSPACE/omega_h -B ${{ runner.temp }}/build-omega_h
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-omega_h/install
-DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake
-DBUILD_SHARED_LIBS=OFF
-DOmega_h_USE_Kokkos=ON
-DOmega_h_USE_CUDA=off
-DOmega_h_USE_MPI=on
-DCMAKE_BUILD_TYPE=Release
-DBUILD_TESTING=on
-DCMAKE_CXX_COMPILER="mpicxx"
-DCMAKE_C_COMPILER="mpicc"

- name: Omega_h Build
if: ${{ steps.build-omega_h.outputs.cache-hit != 'true' }}
run: cmake --build ${{ runner.temp }}/build-omega_h -j8 --target install

# Build Cabana

- name: Cache Cabana Build
uses: actions/cache@v3
id: build-cabana
repo-name: 'Engpar'
repo-path: 'SCOREC/EnGPar'
repo-ref: ''
cache: true
options: '-DCMAKE_C_COMPILER=mpicc
-DCMAKE_CXX_COMPILER=mpicxx
-DCMAKE_CXX_FLAGS="-std=c++11"
-DENABLE_PARMETIS=OFF
-DENABLE_PUMI=OFF
-DIS_TESTING=OFF'

- name: build cabana
uses: ./.github/actions/install-repo
with:
key: build-cabana
path: ${{ runner.temp }}/build-cabana

- name: Cabana Checkout repo
if: ${{ steps.build-cabana.outputs.cache-hit != 'true' }}
uses: actions/checkout@v3
repo-name: 'cabana'
repo-path: 'ECP-copa/cabana'
repo-ref: '0.6.1'
cache: true
options: '-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_DISABLE_FIND_PACKAGE_HDF5=ON
-DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake'

- name: build pumi-pic
uses: ./.github/actions/install-repo
with:
repository: ECP-copa/cabana
ref: 0.6.1
path: cabana

- name: Cabana Create Directory
if: ${{ steps.build-cabana.outputs.cache-hit != 'true' }}
run: cmake -E make_directory ${{ runner.temp }}/build-cabana

- name: Cabana Configure CMake
if: ${{ steps.build-cabana.outputs.cache-hit != 'true' }}
run: cmake -S $GITHUB_WORKSPACE/cabana -B ${{ runner.temp }}/build-cabana
-DCMAKE_BUILD_TYPE="Release"
-DCMAKE_DISABLE_FIND_PACKAGE_HDF5=ON
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
-DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-cabana/install

- name: Cabana Build
if: ${{ steps.build-cabana.outputs.cache-hit != 'true' }}
run: cmake --build ${{ runner.temp }}/build-cabana -j8 --target install

# Build PUMI-PIC

- name: Cache PUMI-PIC Build
uses: actions/cache@v3
id: build-pumi-pic
with:
key: build-pumi-pic
path: ${{ runner.temp }}/build-pumi-pic

- name: PUMI-PIC Checkout repo
if: ${{ steps.build-pumi-pic.outputs.cache-hit != 'true' }}
uses: actions/checkout@v3
with:
submodules: recursive
repository: SCOREC/pumi-pic
ref: 2.0.3
path: pumi-pic

- name: PUMI-PIC Create Directory
if: ${{ steps.build-pumi-pic.outputs.cache-hit != 'true' }}
run: cmake -E make_directory ${{ runner.temp }}/build-pumi-pic

- name: PUMI-PIC Configure CMake
if: ${{ steps.build-pumi-pic.outputs.cache-hit != 'true' }}
run: cmake -S $GITHUB_WORKSPACE/pumi-pic -B ${{ runner.temp }}/build-pumi-pic
-DCMAKE_CXX_COMPILER=mpicxx
-DIS_TESTING=ON
-DPS_IS_TESTING=ON
-DCMAKE_BUILD_TYPE="Release"
-DTEST_DATA_DIR=$GITHUB_WORKSPACE/pumi-pic/pumipic-data
-DOmega_h_PREFIX=${{ runner.temp }}/build-omega_h/install
-DKokkos_PREFIX=${{ runner.temp }}/build-kokkos/install
-DEnGPar_PREFIX=${{ runner.temp }}/build-engpar/install
-DCabana_PREFIX=${{ runner.temp }}/build-cabana/install
-DENABLE_CABANA=on
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-pumi-pic/install
-DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake

- name: PUMI-PIC Build
if: ${{ steps.build-pumi-pic.outputs.cache-hit != 'true' }}
run: cmake --build ${{ runner.temp }}/build-pumi-pic -j8 --target install

# Build PolyMPO

- name: PolyMPO Checkout repo
uses: actions/checkout@v3
repo-name: 'pumi-pic'
repo-path: 'SCOREC/pumi-pic'
submodules: 'recursive'
repo-ref: ''
cache: true
options: '-DCMAKE_CXX_COMPILER=mpicxx
-DTEST_DATA_DIR=$GITHUB_WORKSPACE/pumi-pic/pumipic-data
-DOmega_h_PREFIX=${{ runner.temp }}/build-omega_h/install
-DKokkos_PREFIX=${{ runner.temp }}/build-kokkos/install
-DEnGPar_PREFIX=${{ runner.temp }}/build-Engpar/install
-DCabana_PREFIX=${{ runner.temp }}/build-cabana/install
-DENABLE_CABANA=on
-DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake'

- name: build polyMPO
uses: ./.github/actions/install-repo
with:
submodules: recursive
repository: SCOREC/polyMPO
path: polyMPO

- name: PolyMPO Create Directory
run: cmake -E make_directory ${{ runner.temp }}/build-polyMPO

- name: PolyMPO Configure CMake
run: cmake -S $GITHUB_WORKSPACE/polyMPO -B ${{ runner.temp }}/build-polyMPO
-DCMAKE_BUILD_TYPE="Debug"
-DKokkos_DIR=${{ runner.temp }}/build-kokkos/install/lib64/cmake/Kokkos
-DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-pumi-pic/install
-DIS_TESTING=on
-DCMAKE_CXX_COMPILER=mpicxx
-DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-polyMPO/install
repo-name: 'polyMPO'
repo-path: 'SCOREC/polyMPO'
submodules: 'recursive'
repo-ref: ''
cache: false
options: '-DCMAKE_BUILD_TYPE=Debug
-DKokkos_DIR=${{ runner.temp }}/build-kokkos/install/lib64/cmake/Kokkos
-DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-pumi-pic/install
-DIS_TESTING=on
-DCMAKE_CXX_COMPILER=mpicxx'

- name: PolyMPO Build
run: cmake --build ${{ runner.temp }}/build-polyMPO -j8 --target install
Expand Down
13 changes: 13 additions & 0 deletions .github/workflows/globus-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: Globus-Systems
on:
schedule:
# Monday 9:35 UTC or 04:35 EDT
- cron: '35 9 * * 1'

jobs:

perlmutter-test:
uses: SCOREC/github-actions/.github/workflows/globus-test.yml@main
secrets: inherit
with:
machine: "perlmutter"
Loading