Skip to content

Commit

Permalink
Pace build optional CI (#1460)
Browse files Browse the repository at this point in the history
As climate models developed at NOAA and NASA are leveraging DaCe more
and more for their performance backend, we have seen multiple occurrence
of major/minor version breaking downstream.

This optional GitHub action is an attempt to reduce those breakage by
allowing the DaCe ecosystem to pull on a vetted version of the Pace
climate model and run a subset of the regression tests that should
exercise enough DaCe to catch a good amount of errors.

NASA takes responsibility to keep this CI clean and working along. All
non-DaCe issues should be pinged on @FlorianDeconinck.

All data and model are under open source licenses.

---------

Co-authored-by: Philipp Schaad <[email protected]>
  • Loading branch information
FlorianDeconinck and phschaad authored Dec 12, 2023
1 parent c5cc89f commit b6e1c9d
Showing 1 changed file with 75 additions and 0 deletions.
75 changes: 75 additions & 0 deletions .github/workflows/pace-build-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: NASA/NOAA Pace repository build test

on:
workflow_dispatch:

defaults:
run:
shell: bash

jobs:
build_pace:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8.10]

steps:
- uses: actions/checkout@v2
with:
repository: '[email protected]:GEOS-ESM/pace.git'
ref: 'ci/DaCe'
submodules: 'recursive'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies & pull correct DaCe
run: |
cd pace
python -m pip install --upgrade pip wheel setuptools
cd external/dace
git checkout ${{ github.sha }}
cd ../..
pip install -e external/gt4py
pip install -e external/dace
pip install -r requirements_dev.txt
- name: Download data
run: |
cd pace
mkdir -p test_data
cd test_data
wget https://portal.nccs.nasa.gov/datashare/astg/smt/pace-regression-data/8.1.3_c12_6_ranks_standard.D_SW.tar.gz
tar -xzvf 8.1.3_c12_6_ranks_standard.D_SW.tar.gz
wget https://portal.nccs.nasa.gov/datashare/astg/smt/pace-regression-data/8.1.3_c12_6_ranks_standard.RiemSolverC.tar.gz
tar -xzvf 8.1.3_c12_6_ranks_standard.RiemSolverC.tar.gz
wget https://portal.nccs.nasa.gov/datashare/astg/smt/pace-regression-data/8.1.3_c12_6_ranks_standard.Remapping.tar.gz
tar -xzvf 8.1.3_c12_6_ranks_standard.Remapping.tar.gz
cd ../..
- name: "Regression test: Riemman Solver on C-grid"
run: |
export FV3_DACEMODE=BuildAndRun
export PACE_CONSTANTS=GFS
cd pace
pytest -v -s --data_path=./test_data/8.1.3/c12_6ranks_standard/dycore \
--backend=dace:cpu --which_modules=Riem_Solver_C \
--threshold_overrides_file=./fv3core/tests/savepoint/translate/overrides/standard.yaml \
./fv3core/tests/savepoint
- name: "Regression test: D-grid shallow water lagrangian dynamics (D_SW)"
run: |
export FV3_DACEMODE=BuildAndRun
export PACE_CONSTANTS=GFS
cd pace
pytest -v -s --data_path=./test_data/8.1.3/c12_6ranks_standard/dycore \
--backend=dace:cpu --which_modules=D_SW \
--threshold_overrides_file=./fv3core/tests/savepoint/translate/overrides/standard.yaml \
./fv3core/tests/savepoint
- name: "Regression test: Remapping (on rank 0 only)"
run: |
export FV3_DACEMODE=BuildAndRun
export PACE_CONSTANTS=GFS
cd pace
pytest -v -s --data_path=./test_data/8.1.3/c12_6ranks_standard/dycore \
--backend=dace:cpu --which_modules=Remapping --which_rank=0 \
--threshold_overrides_file=./fv3core/tests/savepoint/translate/overrides/standard.yaml \
./fv3core/tests/savepoint

0 comments on commit b6e1c9d

Please sign in to comment.