Inline harmonic analysis #2252
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |