Skip to content
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

API Consolidation #74

Open
wants to merge 31 commits into
base: cws/pumipicDps
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
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
294 changes: 92 additions & 202 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,215 +32,105 @@ 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
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
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

- name: build kokkos
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: '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 Engpar
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: '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 omega_h
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
repo-name: 'omega_h'
repo-path: 'SCOREC/omega_h'
repo-ref: 'scorec-v10.8.4'
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 cabana
uses: ./.github/actions/install-repo
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
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:
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'
repo-ref: '2.1.2'
submodules: 'recursive'
cache: true
options: '-DCMAKE_CXX_COMPILER=mpicxx
-DCMAKE_BUILD_TYPE=Release
-DIS_TESTING=OFF
-DPS_IS_TESTING=OFF
-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

- name: PolyMPO Build
run: cmake --build ${{ runner.temp }}/build-polyMPO -j8 --target install
repo-name: 'polyMPO'
repo-path: 'SCOREC/polyMPO'
repo-ref: ''
cache: false
submodules: 'recursive'
options: '-DCMAKE_CXX_COMPILER=mpicxx
-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'

- name: PolyMPO Test
run: ctest --test-dir ${{ runner.temp }}/build-polyMPO
Expand Down
31 changes: 31 additions & 0 deletions .github/workflows/updateCmakeVersion.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Update CMAKE Version
on:
pull_request:

jobs:
checkVersion:
runs-on: ubuntu-latest

defaults:
run:
shell: bash

steps:

- name: Check out master
uses: actions/checkout@v4
with:
path: master
ref: ${{ github.base_ref }}

- name: Check out current
uses: actions/checkout@v4
with:
path: branch

- name: CMake Version Has Updated
run: |
masterVersion=$(grep -oP 'project\(\s*[\w-]+\s+VERSION\s+\K[0-9]+\.[0-9]+\.[0-9]+' master/CMakeLists.txt)
branchVersion=$(grep -oP 'project\(\s*[\w-]+\s+VERSION\s+\K[0-9]+\.[0-9]+\.[0-9]+' branch/CMakeLists.txt)
[ "$masterVersion" != "$branchVersion" ]

2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.19)
project(polyMPO VERSION 0.1.0 LANGUAGES CXX Fortran)
project(polyMPO VERSION 0.2.0 LANGUAGES CXX Fortran)

include(cmake/bob.cmake)
bob_begin_package()
Expand Down
Loading
Loading