Skip to content

Commit

Permalink
Merge branch 'develop' into fuad-commits-not-interpolation
Browse files Browse the repository at this point in the history
  • Loading branch information
jacobmerson committed Dec 18, 2024
2 parents 2ddbfae + 72318ed commit 502999e
Show file tree
Hide file tree
Showing 34 changed files with 4,650 additions and 335 deletions.
44 changes: 44 additions & 0 deletions .github/actions/install-repo/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Install-Repo

inputs:
repo-name:
required: true
repo-path:
required: true
repo-ref:
required: true
options:
required: true
cache:
required: true

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 }}
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
150 changes: 150 additions & 0 deletions .github/workflows/cmake-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
name: Test-Build
on:
push:
schedule:
- cron: '12 14 * * 3'

jobs:
test-build:
runs-on: ubuntu-latest

defaults:
run:
shell: bash

strategy:
matrix:
build_type: [Release]
memory_test: [ON, OFF]
compiler: [g++]
language: ['cpp']
exclude:
- build_type: Release
memory_test: ON
- build_type: RelWithDebInfo
memory_test: OFF

steps:

- name: Update packages
run: sudo apt-get update

- name: Install mpi
run: sudo apt-get install -yq mpich libmpich-dev

- uses: actions/checkout@v4

- name: build kokkos
uses: ./.github/actions/install-repo
with:
repo-name: 'kokkos'
repo-path: 'kokkos/kokkos'
repo-ref: '4.2.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
-DKokkos_ENABLE_DEBUG=on'

- name: build ADIOS2
uses: ./.github/actions/install-repo
with:
repo-name: 'ADIOS2'
repo-path: 'ornladios/ADIOS2'
repo-ref: ''
cache: true
options: '-DADIOS2_USE_CUDA=off
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_COMPILER=mpicxx
-DCMAKE_C_COMPILER=mpicc'

- name: build perfstubs
uses: ./.github/actions/install-repo
with:
repo-name: 'perfstubs'
repo-path: 'UO-OACISS/perfstubs'
repo-ref: ''
cache: true
options: '-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_COMPILER=mpicxx
-DCMAKE_C_COMPILER=mpicc'

- name: build redev
uses: ./.github/actions/install-repo
with:
repo-name: 'redev'
repo-path: 'SCOREC/redev'
repo-ref: ''
cache: true
options: '-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_COMPILER=mpicxx
-DCMAKE_C_COMPILER=mpicc
-DMPIEXEC_EXECUTABLE=`which srun`
-Dperfstubs_DIR=${{ runner.temp }}/build-perfstubs
-DADIOS2_ROOT=${{ runner.temp }}/build-ADIOS2/install'

- name: build omega_h
uses: ./.github/actions/install-repo
with:
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
-DMPIEXEC_EXECUTABLE=srun
-DBUILD_TESTING=off
-DCMAKE_C_COMPILER=mpicc
-DCMAKE_CXX_COMPILER=mpicxx
-DKokkos_PREFIX=${{ runner.temp }}/build-kokkos/install/lib/cmake'

- name: build Catch2
uses: ./.github/actions/install-repo
with:
repo-name: 'Catch2'
repo-path: 'catchorg/Catch2'
repo-ref: ''
cache: true
options: '-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_COMPILER=mpicxx'

- name: checkout pcms_testcases
uses: actions/checkout@v3
with:
repository: jacobmerson/pcms_testcases
path: pcms_testcases

- name: Install fftw3
run: sudo apt-get install -yq fftw3 fftw3-dev pkg-config

- name: build pcms
uses: ./.github/actions/install-repo
with:
repo-name: 'pcms'
repo-path: 'SCOREC/pcms'
repo-ref: ''
cache: false
options: '-DCMAKE_BUILD_TYPE=Release
-DCMAKE_C_COMPILER=mpicc
-DCMAKE_CXX_COMPILER=mpicxx
-Dredev_DIR=${{ runner.temp }}/build-redev/install/lib/cmake/redev
-Dperfstubs_DIR=${{ runner.temp }}/build-perfstubs
-DOmega_h_DIR=${{ runner.temp }}/build-omega_h/install/lib/cmake/Omega_h
-DKokkos_DIR=${{ runner.temp }}/build-kokkos/install/lib/cmake/Kokkos
-DCatch2_DIR=${{ runner.temp }}/build-Catch2/install/lib/cmake/Catch2
-DPCMS_TEST_DATA_DIR=$PWD/pcms_testcases'

# - name: Install Valgrind
# run: sudo apt-get install -yq valgrind

# - name: Run CTest
# run: ctest --test-dir ${{ runner.temp }}/build-pcms

# - name: Print Test
# if: always()
# run: cat ${{ runner.temp }}/build-pcms/Testing/Temporary/LastTest.log
12 changes: 12 additions & 0 deletions .github/workflows/globus-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: Globus-Systems
on:
schedule:
# Monday 8:35 UTC or 04:35 EDT
- cron: '35 8 * * 1'

jobs:
perlmutter-test:
uses: SCOREC/github-actions/.github/workflows/globus-test.yml@main
secrets: inherit
with:
machine: "perlmutter"
110 changes: 110 additions & 0 deletions .github/workflows/perlmutter/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
#!/bin/bash -e

branch=$1

cd $SCRATCH/globus-compute/pcms-test

module load cray-fftw

# # kokkos
# rm build-kokkos -rf
# # rm kokkos -rf
# git clone -b 4.2.00 https://github.com/kokkos/kokkos.git
# cmake -S kokkos -B build-kokkos \
# -DCMAKE_INSTALL_PREFIX=build-kokkos/install \
# -DCMAKE_BUILD_TYPE="Release" \
# -DCMAKE_CXX_COMPILER=$PWD/kokkos/bin/nvcc_wrapper \
# -DKokkos_ARCH_AMPERE80=ON \
# -DKokkos_ENABLE_SERIAL=ON \
# -DKokkos_ENABLE_OPENMP=off \
# -DKokkos_ENABLE_CUDA=on \
# -DKokkos_ENABLE_CUDA_LAMBDA=on \
# -DKokkos_ENABLE_CUDA_CONSTEXPR=on \
# -DKokkos_ENABLE_DEBUG=off
# cmake --build build-kokkos -j 24 --target install

# # ADIOS2
# rm build-ADIOS2 -rf
# # rm ADIOS2 -rf
# git clone [email protected]:ornladios/ADIOS2.git
# cmake -S ADIOS2/ -B build-ADIOS2 \
# -DCMAKE_INSTALL_PREFIX=build-ADIOS2/install \
# -DADIOS2_USE_CUDA=on \
# -DCMAKE_BUILD_TYPE=Release \
# -DCMAKE_CXX_COMPILER=CC \
# -DCMAKE_C_COMPILER=cc
# cmake --build build-ADIOS2 --target install -j8

# # perfstubs
# rm build-perfstubs -rf
# # rm perfstubs -rf
# git clone [email protected]:UO-OACISS/perfstubs.git
# cmake -S perfstubs -B build-perfstubs \
# -DCMAKE_CXX_COMPILER=CC \
# -DCMAKE_C_COMPILER=cc \
# -DCMAKE_INSTALL_PREFIX=build-perfstubs/install
# cmake --build build-perfstubs -j2 --target install

# # redev
# rm build-redev -rf
# # rm redev -rf
# git clone [email protected]:SCOREC/redev.git
# cmake -S redev -B build-redev \
# -DCMAKE_CXX_COMPILER=CC \
# -DCMAKE_C_COMPILER=cc \
# -DMPIEXEC_EXECUTABLE=`which srun` \
# -DCMAKE_BUILD_TYPE=Release \
# -DCMAKE_INSTALL_PREFIX=build-redev/install \
# -Dperfstubs_DIR=$PWD/build-perfstubs \
# -DADIOS2_ROOT=build-ADIOS2/install
# cmake --build build-redev -j2 --target install

# # omega_h
# rm build-omega_h -rf
# # rm omega_h -rf
# git clone [email protected]:SCOREC/omega_h.git
# cmake -S omega_h -B build-omega_h \
# -DCMAKE_INSTALL_PREFIX=build-omega_h/install \
# -DCMAKE_BUILD_TYPE=Release \
# -DBUILD_SHARED_LIBS=off \
# -DOmega_h_USE_Kokkos=ON \
# -DOmega_h_USE_CUDA=on \
# -DOmega_h_CUDA_ARCH=80 \
# -DOmega_h_USE_MPI=on \
# -DMPIEXEC_EXECUTABLE=srun \
# -DBUILD_TESTING=off \
# -DCMAKE_C_COMPILER=cc \
# -DCMAKE_CXX_COMPILER=CC \
# -DKokkos_PREFIX=build-kokkos/install/lib64/cmake
# cmake --build build-omega_h -j24 --target install

# # Catch2
# rm build-Catch2 -rf
# # rm Catch2 -rf
# git clone https://github.com/catchorg/Catch2
# cmake -S Catch2 -B build-Catch2 \
# -DCMAKE_INSTALL_PREFIX=$PWD/build-Catch2/install \
# -DCMAKE_CXX_COMPILER=CC
# cmake --build build-Catch2 -j2 --target install

# pcms
rm pcms -rf
rm build-pcms -rf
rm pcms_testcases -rf

git clone [email protected]:jacobmerson/pcms_testcases.git
git clone https://github.com/SCOREC/pcms.git
cd pcms && git checkout $branch && cd -

cmake -S pcms -B build-pcms \
-DCMAKE_C_COMPILER=cc \
-DCMAKE_CXX_COMPILER=CC \
-DCMAKE_BUILD_TYPE=Release \
-DPCMS_TIMEOUT=0 \
-Dperfstubs_DIR=$PWD/build-perfstubs \
-Dredev_DIR=$PWD/build-redev/install/lib64/cmake/redev \
-DOmega_h_DIR=$PWD/build-omega_h/install/lib64/cmake/Omega_h/ \
-DKokkos_DIR=$PWD/build-kokkos/install/lib64/cmake/Kokkos/ \
-DCatch2_DIR=$PWD/build-Catch2/install/lib64/cmake/Catch2/ \
-DPCMS_TEST_DATA_DIR=$PWD/pcms_testcases
cmake --build build-pcms -j8
11 changes: 11 additions & 0 deletions .github/workflows/perlmutter/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/bash

name=pcms

cd $SCRATCH/globus-compute/$name-test

module load cray-fftw

cd build-$name
salloc --time 00:20:00 --constrain=gpu --qos=interactive --nodes=1 --ntasks-per-node=40 --cpus-per-task=1 --gpus=1 --account=m4564 ctest
cat $PWD/Testing/Temporary/LastTest.log
49 changes: 49 additions & 0 deletions .github/workflows/update_doxygen_page.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Update Doxygen Page

on:
push:
branches:
- master

jobs:
doxygen:
runs-on: ubuntu-latest
permissions:
contents: write

steps:

- name: Install Doxygen
run: |
sudo apt-add-repository universe
sudo apt-get update
sudo apt-get install doxygen
- name: Checkout Original
uses: actions/checkout@v4
with:
path: original

- name: Run Doxygen
working-directory: original
run: doxygen

- name: Checkout Pages
uses: actions/checkout@v4
with:
path: pages

- name: Set up pages directory
working-directory: pages
run: |
git checkout --orphan gh-pages
git rm -rf .
cp -r ../original/html/. .
- name: Update Github
working-directory: pages
run: |
git config user.name "GitHub Actions Bot"
git config user.email "<>"
git add .
git commit -m "Update page from action"
git push -f origin gh-pages
Loading

0 comments on commit 502999e

Please sign in to comment.