Skip to content

Machine Learning based vertical diffusivity in EPBL mixing scheme used for ocean surface boundary layer #2229

Machine Learning based vertical diffusivity in EPBL mixing scheme used for ocean surface boundary layer

Machine Learning based vertical diffusivity in EPBL mixing scheme used for ocean surface boundary layer #2229

Workflow file for this run

name: Performance Monitor
on: [push, pull_request]
jobs:
build-test-perfmon:
runs-on: ubuntu-latest
defaults:
run:
working-directory: .testing
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: ./.github/actions/ubuntu-setup
- uses: ./.github/actions/testing-setup
- name: Compile optimized models
if: ${{ github.event_name == 'pull_request' }}
run: >-
make -j build.prof
MOM_TARGET_SLUG=$GITHUB_REPOSITORY
MOM_TARGET_LOCAL_BRANCH=$GITHUB_BASE_REF
DO_REGRESSION_TESTS=true
- name: Generate profile data
if: ${{ github.event_name == 'pull_request' }}
run: >-
pip install f90nml &&
make profile
DO_REGRESSION_TESTS=true
- name: Generate perf data
if: ${{ github.event_name == 'pull_request' }}
run: |
sudo sysctl -w kernel.perf_event_paranoid=2
make perf DO_REGRESSION_TESTS=true
# This job assumes that build/target_codebase was cloned above
- name: Compile timing tests for reference code
if: ${{ github.event_name == 'pull_request' }}
run: >-
make -j build.timing_target
MOM_TARGET_SLUG=$GITHUB_REPOSITORY
MOM_TARGET_LOCAL_BRANCH=$GITHUB_BASE_REF
DO_REGRESSION_TESTS=true
- name: Compile timing tests
run: |
make -j build.timing
# DO_REGERESSION_TESTS=true is needed here to set the internal macro TARGET_CODEBASE
- name: Run timing tests for reference code
if: ${{ github.event_name == 'pull_request' }}
run: >-
make -j run.timing_target
DO_REGRESSION_TESTS=true
- name: Run timing tests
run: |
make -j run.timing
- name: Display timing results
run: |
make -j show.timing
- name: Display comparison of timing results
if: ${{ github.event_name == 'pull_request' }}
run: >-
make -j compare.timing
DO_REGRESSION_TESTS=true