Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
e535ba6
working baroclinic test case example (#81)
oelbert Apr 19, 2024
fa6097e
fixing dockerfile overriding netcdf, mpi4py, and numpy versions with …
oelbert Apr 25, 2024
74ccf31
Update notebooks for eta file creations (#85)
mlee03 May 10, 2024
3fa59a8
Update pace to use python 3.11.9 (#82)
fmalatino May 17, 2024
392aa2d
Updated container for Github Action and reusable workflow (#87)
mlee03 Jun 26, 2024
777b332
Updated container for Github Action and reusable workflow - Redo (#89)
mlee03 Jun 26, 2024
e7f5a48
Matching packages between main and develop branches and removal of ou…
fmalatino Jul 8, 2024
ffbf851
reusable workflow CI - checkout corrrect repository (#90)
mlee03 Jul 9, 2024
4e2521d
add build script for intel oneapi and gcc compiler separately (#88)
Jul 10, 2024
6640a99
pace/tests/main/grid/test_eta.py moved to NDSL/tests/grid/test_eta.py…
fmalatino Sep 6, 2024
6915fc3
Updated constraints to reflect incoming new versions of subrepositori…
fmalatino Sep 13, 2024
a8152e5
Updated README to include directions for generating eta files (#99)
fmalatino Dec 13, 2024
ec20c2a
Update submodules and addition of baroclinic run to workflow (#101)
fmalatino Jan 21, 2025
5092938
Hotfix/update netcdf version for docker files (#102)
oelbert Jan 27, 2025
b32a2bd
`xarray` to `2025.01.2` to grab the `DataTree` (#103)
FlorianDeconinck Feb 24, 2025
66acf88
Update submodules (#104)
fmalatino Mar 5, 2025
ea391f7
Feature: Ability to set desired NetCDF output precision from config (…
fmalatino Mar 13, 2025
81f3c63
Markdown cleanup/style (#111)
romanc Mar 24, 2025
1d09e7f
Change deprecated `np.product()` to `np.prod()` (#110)
romanc Mar 24, 2025
6c0ed5a
Don't force `constraints.txt` when running pace tests in external rep…
romanc Mar 24, 2025
db31a13
Proposal: updated dependency handling (#117)
romanc Apr 30, 2025
3b44b8c
Update NDSL to 2025.03.00 (#120)
romanc May 13, 2025
2abfc05
Update pyFV3 to latest (#121)
romanc May 13, 2025
cd1f777
Update to Dockerfile and Makefile to reflect recent install method ch…
fmalatino May 14, 2025
ff42af7
updating NDSL to c38e64fc5b806d0ae1777b565cb520f1b3e5bede (#122)
CharlesKrop May 14, 2025
c917c38
Remove Direct GT4Py Imports (#114)
CharlesKrop May 22, 2025
8693ca0
No boost dependency anymore (#125)
romanc May 30, 2025
2ca71a1
refactor: Use `pathlib` for manipulating paths (#124)
romanc Jun 12, 2025
a47e440
Duplicate of pace/comm.py (#126)
romanc Jun 12, 2025
c710c1e
Fix: Updating external grid read-in method to match output from FRE-N…
fmalatino Jul 10, 2025
e902a38
Use of `pyproject.toml` and move to minimal `setup.py` for modernizat…
fmalatino Jul 17, 2025
cc5d9f4
Fix: Base Ubuntu runner in workflow (#131)
fmalatino Jul 22, 2025
449bf4a
Fix: Matching `pyFV3` package specifications (#132)
fmalatino Jul 22, 2025
5f5016e
ci: prepare for using a merge-queue in pace (#133)
romanc Aug 14, 2025
d0444dd
ci: only run on push to main branch (#135)
romanc Aug 20, 2025
7c717b3
Adds a dockerfile that will work with the NVHPC compiler and with cud…
thomas-robinson Aug 21, 2025
fb2c3aa
Fix/physics states (#139)
oelbert Aug 22, 2025
c2b8575
Updating test workflow to use conda environment for addition of `pyRT…
fmalatino Sep 2, 2025
d86ca26
Fix: Adding oversubscribe flag for baroclinic instability run in work…
fmalatino Sep 3, 2025
fc8700b
ci: cache pre-commit environment between PR runs (#144)
romanc Sep 8, 2025
8028842
ci: Update actions/checkout v4 -> v5 (#143)
romanc Sep 8, 2025
a316389
add workflow to test dockerfile builds (#140)
rem1776 Sep 9, 2025
f092591
Fix: Workflow maintaining conda environment (#146)
fmalatino Sep 11, 2025
246e16b
fixed CubedSphereCommunicator call to use mpi_comm_dsl correctly (#115)
lharris4 Sep 12, 2025
38bfce6
refactor: use new versions of environment variables (#147)
romanc Sep 12, 2025
1c98cf9
refactor: change tests to use gt4py storage (#148)
romanc Sep 16, 2025
8a32320
Use eta files shipped with NDSL (#149)
romanc Sep 23, 2025
68301fd
Update submodules as of Sep 19 2025 (#150)
jjuyeonkim Oct 9, 2025
c584ef0
ci: fix test runs that broke out of nowhere (#151)
romanc Oct 16, 2025
20b6fbe
Temporary Dycore dacite Config + Dycore Config Type Check Tweak [see…
jjuyeonkim Oct 21, 2025
aa27d69
GridSizer API: Use `fom_tile_params` instead of direct constructor of…
FlorianDeconinck Oct 23, 2025
85a792c
Tmp dacite.Config for PhysicsConfig + PyFV3 module update + Clean-up …
jjuyeonkim Oct 27, 2025
6866e55
Update to NDSL 2025.10.00+ (sync pyFV3, pySHiELD to develop) (#156)
romanc Oct 30, 2025
8842f2f
refactor: avoid deprecation warnings after update (#157)
romanc Oct 30, 2025
db1159c
Removing ndsl.Namelist from Pace (#158)
jjuyeonkim Oct 30, 2025
89c5fa1
Merging develop into benchmark branch
fmalatino Nov 10, 2025
4dcfa88
Updating benchmark config files to match changes
fmalatino Nov 10, 2025
c495c18
Updating submodules
fmalatino Nov 19, 2025
e5254d4
Fixes for Dockerfile to specify NDSL version and black specification …
fmalatino Dec 12, 2025
cea3046
Update to 2025.11.00 (#161)
FlorianDeconinck Dec 15, 2025
14be4f5
[Fix]: Amending Makefile to match testing data downloads of submodule…
fmalatino Dec 15, 2025
57a6750
refactor: prefer `get_tile_index()` over `get_tile_number()` (#167)
romanc Jan 13, 2026
421ecb9
refactor: use new constructor of `QuantityFactory` (#169)
romanc Jan 13, 2026
0aa69af
refactor: prefer `backend` over `gt4py_backend` (#170)
romanc Jan 13, 2026
516427e
refactor: move `NullComm` from NDSL to pace (#168)
romanc Jan 13, 2026
003e938
Update pyFV3 and pySHiELD submodules (#173)
romanc Jan 16, 2026
667dea0
update pyFV3 to propagate `NullComm` -> `LocalComm` (#174)
romanc Jan 16, 2026
1372853
refactor: update actions in workflows, checkout@v6, cache@v5 (#171)
fmalatino Jan 16, 2026
495d905
Update NDSL 2026.01.00 (#175)
romanc Jan 21, 2026
2404cc9
refactor: get rid of deprecation warnings from NDSL 2026.01.00 (#177)
romanc Jan 21, 2026
e632e01
Swap string dimensioons for they constant (#176)
FlorianDeconinck Jan 26, 2026
fd67bfa
ci: expose python version for translate tests (#178)
romanc Feb 5, 2026
41d6d85
[Update] NDSL 2026.02.00 breaking change & update to DaCe V2 (#180)
FlorianDeconinck Mar 5, 2026
562c394
tests: minor cleanup in tests (#181)
romanc Mar 10, 2026
de2f8cd
Changing submodule names to reflect new repository names (#179)
fmalatino Mar 16, 2026
ff911c0
Merge branch 'develop' into benchmark_fm
fmalatino Mar 18, 2026
6c8855a
Updating to latest submodule versions and changes to branch
fmalatino Mar 18, 2026
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
7 changes: 3 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ commands:
software-properties-common \
libopenmpi3 \
libopenmpi-dev \
libboost-all-dev \
python3 \
python3-pip \
- run:
Expand Down Expand Up @@ -134,7 +133,7 @@ jobs:

lint:
docker:
- image: cimg/python:3.8
- image: cimg/python:3.8
resource_class: small
steps:
- checkout
Expand All @@ -159,7 +158,7 @@ jobs:

doctest:
docker:
- image: cimg/python:3.8
- image: cimg/python:3.8
steps:
- checkout
- run:
Expand Down Expand Up @@ -471,7 +470,7 @@ jobs:

push_docs:
docker:
- image: cimg/python:3.8
- image: cimg/python:3.8
steps:
- checkout
- run:
Expand Down
12 changes: 6 additions & 6 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
version: 2
updates:
- package-ecosystem: gitsubmodule
directory: "/"
schedule:
interval: daily
time: "13:00"
open-pull-requests-limit: 10
- package-ecosystem: gitsubmodule
directory: "/"
schedule:
interval: daily
time: "13:00"
open-pull-requests-limit: 10
21 changes: 21 additions & 0 deletions .github/workflows/container_build_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
on:
push:
branches:
- 'develop'
schedule:
- cron: '0 0 * * 0' # sundays @ midnight

jobs:
test-container-builds:
runs-on: ubuntu-latest
steps:
- name: Checkout Files
uses: actions/checkout@v6
with:
submodules: recursive
- name: Build Dockerfile
uses: docker/[email protected]
with:
context: .
push: false
file: "Dockerfile"
44 changes: 44 additions & 0 deletions .github/workflows/create_cache.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: "Create GHA cache"

# GitHub puts the following restrictions on cache sharing. PRs can access
#
# - caches that were created by the PR / earlier runs of the PR
# - caches that were created on the target branch
#
# To get effective cache sharing between PRs, we create caches on the `develop`
# branch (which is where almost all PRs merge into).

on:
push:
branches: [develop]

# Cancel running jobs if there's a newer push
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
# GitHub Actions cache of the pre-commit environment
pre-commit:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6

- name: Setup Python 3.12
uses: actions/setup-python@v6
with:
python-version: '3.12'

- uses: actions/cache@v5
id: cache
with:
path: ~/.cache/pre-commit
key: pre-commit_${{ env.pythonLocation }}_${{ hashFiles('.pre-commit-config.yaml') }}
lookup-only: true # don't actually download the cache

- name: Populate pre-commit environment (if not cached)
if: steps.cache.outputs.cache-hit != 'true'
run: |
pip install pre-commit
pre-commit install --install-hooks
48 changes: 29 additions & 19 deletions .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
@@ -1,26 +1,36 @@
name: "Lint"

# Run these these whenever ...
on:
pull_request:
pull_request: # ... a PR is opened / updated
merge_group: # ... the PR is added to the merge queue
push:
branches:
- main # ... when merging into the main branch

jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout Pace repository
uses: actions/[email protected]
with:
submodules: 'recursive'
- name: Step Python 3.11.7
uses: actions/[email protected]
with:
python-version: '3.11.7'
- name: Install OpenMPI for gt4py
run: |
sudo apt-get install libopenmpi-dev
- name: Install Python packages
run: |
python -m pip install --upgrade pip
pip install -r requirements_dev.txt -r requirements_lint.txt
- name: Run lint via pre-commit
run: |
pre-commit run --all-files
- name: Checkout repository
uses: actions/checkout@v6
with:
submodules: 'recursive'

- name: Step Python 3.12
uses: actions/setup-python@v6
with:
python-version: '3.12'

# Only restore (don't save) caches on PRs. New caches created from PRs won't be
# accessible from other PRs, see workflows/create-cache.yaml.
- uses: actions/cache/restore@v5
with:
path: ~/.cache/pre-commit
key: pre-commit_${{ env.pythonLocation }}_${{ hashFiles('.pre-commit-config.yaml') }}

- name: Install pre-commit
run: pip install pre-commit

- name: Run lint via pre-commit
run: pre-commit run --all-files
104 changes: 65 additions & 39 deletions .github/workflows/main_unit_tests.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
name: "pace main unit tests"

# Run these these whenever ...
on:
workflow_call:
workflow_call: # ... called from a downstream repo
inputs:
component_trigger:
type: boolean
Expand All @@ -10,7 +12,15 @@ on:
type: string
default: ''
required: false
pull_request:
python_version:
type: string
default: ''
required: false
pull_request: # ... a PR is opened / updated
merge_group: # ... the PR is added to the merge queue
push:
branches:
- main # ... when merging into the main branch

# cancel running jobs if theres a newer push
concurrency:
Expand All @@ -20,47 +30,63 @@ concurrency:
jobs:
pace_main_unit_tests:
runs-on: ubuntu-latest
container:
image: ghcr.io/noaa-gfdl/miniforge:mpich
defaults:
run:
shell: bash -el {0}
env:
python_default: '3.12'

steps:
- name: external trigger Checkout pace/develop
if: ${{ inputs.component_trigger }}
uses: actions/checkout@v4
with:
submodules: 'recursive'
repository: NOAA-GFDL/pace
path: pace
ref: develop
- name: "External trigger: Checkout pace/develop"
if: ${{ inputs.component_name }}
uses: actions/checkout@v6
with:
submodules: 'recursive'
repository: NOAA-GFDL/pace
path: pace

- name: 'Setup Python ${{ inputs.python_version && inputs.python_version || env.python_default }}'
uses: actions/setup-python@v6
with:
python-version: ${{ inputs.python_version && inputs.python_version || env.python_default }}

- name: Install mpi (MPICH flavor)
run: pip install mpich

- name: Install numpy==1.26.4
# Front-load installing numpy to force its usage in the radiation
# scheme of pySHiELD.
# TODO: This is an ugly hack and it should be cleaned up latest once
# we add support for numpy >= 2.0
run: pip install numpy==1.26.4

- name: external trigger Remove existing component in pace/develop
if: ${{ inputs.component_trigger }}
run: rm -rf ${GITHUB_WORKSPACE}/pace/${{inputs.component_name}}
- name: "External trigger: Remove existing component in pace/develop"
if: ${{ inputs.component_name }}
run: rm -rf ${GITHUB_WORKSPACE}/pace/${{inputs.component_name}}

- name: Checkout out hash that triggered CI
uses: actions/checkout@v4
with:
submodules: 'recursive'
path: pace/${{inputs.component_name}}
- name: Checkout out hash that triggered CI
uses: actions/checkout@v6
with:
submodules: 'recursive'
path: pace/${{inputs.component_name}}

- name: install packages
run: |
cd ${GITHUB_WORKSPACE}/pace
pip3 install --upgrade pip setuptools wheel
pip3 install -r requirements_dev.txt -c constraints.txt
- name: Install packages
run: |
cd ${GITHUB_WORKSPACE}/pace
pip install .[test]

- name: prepare input files
run: |
cd ${GITHUB_WORKSPACE}/pace
mkdir tests/main/input
python3 examples/generate_eta_files.py
mv *eta*.nc tests/main/input
- name: Print versions
run: |
python --version
pip --version
pip list

- name: run tests
run: |
cd ${GITHUB_WORKSPACE}/pace
pytest -x tests/main
- name: Run tests
run: |
cd ${GITHUB_WORKSPACE}/pace
python -m pytest -x tests/main

- name: run baroclinic
run: |
cd ${GITHUB_WORKSPACE}/pace
mpiexec -np 6 --oversubscribe python -m pace.run examples/configs/baroclinic_c12.yaml
- name: Run baroclinic test case
run: |
cd ${GITHUB_WORKSPACE}/pace
mpiexec -np 6 python -m pace.run examples/configs/baroclinic_c48_no_out.yaml
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
branch = develop
[submodule "pyFV3"]
path = pyFV3
url = https://github.com/NOAA-GFDL/PyFV3.git
url = https://github.com/NOAA-GFDL/pyFV3.git
branch = develop
[submodule "pySHiELD"]
path = pySHiELD
url = https://github.com/NOAA-GFDL/PySHiELD.git
url = https://github.com/NOAA-GFDL/pySHiELD.git
branch = develop
4 changes: 2 additions & 2 deletions .jenkins/driver_configs/baroclinic_c192_54ranks.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
stencil_config:
compilation_config:
backend: dace:gpu
backend: st:dace:gpu:KJI
rebuild: false
validate_args: true
format_source: false
device_sync: true
initialization:
type: analytic
config:
case: baroclinic
case: baroclinic_instability
diagnostics_config:
path: "output.zarr"
names:
Expand Down
6 changes: 3 additions & 3 deletions .jenkins/driver_configs/baroclinic_c192_6ranks.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
stencil_config:
compilation_config:
backend: dace:gpu
backend: st:dace:gpu:KJI
rebuild: false
validate_args: true
format_source: false
device_sync: true
initialization:
type: analytic
config:
case: baroclinic
case: baroclinic_instability
diagnostics_config:
path: "output.zarr"
names:
Expand All @@ -18,7 +18,7 @@ diagnostics_config:
output_initial_state: true
performance_config:
collect_performance: true
experiment_name: c192_baroclinic
experiment_name: c192_baroclinic_instability
nx_tile: 192
nz: 79
dt_atmos: 200
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ dycore_only: true
disable_step_physics: true
stencil_config:
compilation_config:
backend: gt:gpu
backend: st:gt:gpu:KJI
rebuild: false
validate_args: true
format_source: false
Expand All @@ -11,7 +11,7 @@ stencil_config:
initialization:
type: analytic
config:
case: baroclinicc
case: baroclinic_instability
performance_config:
collect_performance: false
nx_tile: 48
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ dycore_only: true
disable_step_physics: true
stencil_config:
compilation_config:
backend: gt:gpu
backend: st:gt:gpu:KJI
rebuild: false
validate_args: true
format_source: false
Expand Down
Loading