From 74681c63b824743dc65842af02ecb40514661181 Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Wed, 18 Mar 2026 14:02:06 +0000 Subject: [PATCH 01/19] Move to LFRic 3.1 support --- .github/workflows/lfric_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index d68206bec1..7943d62fed 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -42,7 +42,7 @@ on: push env: - LFRIC_APPS_HASH: 0f10e77a0d59901396719f475b658a51fb595a10 + LFRIC_APPS_HASH: bc922c8da09e74b5af1548229cf2d62e9fe4e9ee PYTHON_VERSION: "3.14" GNU_TOOLCHAIN: gnu14_openmpi NVHPC_TOOLCHAIN: nvhpc25_11_openmpi From 04656b734a9a84e9831bb84c843c8f5aac2a2444 Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Wed, 18 Mar 2026 14:39:12 +0000 Subject: [PATCH 02/19] Latest fixes --- .github/workflows/lfric_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index 7943d62fed..2c1e0f5f6b 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -42,7 +42,7 @@ on: push env: - LFRIC_APPS_HASH: bc922c8da09e74b5af1548229cf2d62e9fe4e9ee + LFRIC_APPS_HASH: 4182f2f69d2186a9b1a91ec75d87904ca2049117 PYTHON_VERSION: "3.14" GNU_TOOLCHAIN: gnu14_openmpi NVHPC_TOOLCHAIN: nvhpc25_11_openmpi From 74b39206b94d69480b7ef10a8c5c635f4748d538 Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Wed, 18 Mar 2026 15:34:28 +0000 Subject: [PATCH 03/19] Fixes for the lack of timer.txt --- .github/workflows/lfric_test.yml | 37 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index 2c1e0f5f6b..a05ca4e798 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -123,10 +123,10 @@ jobs: # Number of OMP threads have to be set even when psyclone does not inject OpenMP # because some psykal-lite routines have it. export OMP_NUM_THREADS=1 - mpirun -n 12 ../bin/gungho_model configuration.nml + /usr/bin/time --format=%e mpirun -n 12 ../bin/gungho_model configuration.nml 2> output_time python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt - cat timer.txt - export VAR_TIME=$(grep "gungho_model" timer.txt | cut -d'|' -f5) + cat output_time + export VAR_TIME=$(cat output_time) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" # PSyclone, compile and run MetOffice gungho_model on GPU @@ -155,10 +155,10 @@ jobs: rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run export OMP_NUM_THREADS=12 export CUDA_VISIBLE_DEVICES=1 - mpirun -n 1 ../bin/gungho_model configuration.nml + /usr/bin/time --format=%empirun -n 1 ../bin/gungho_model configuration.nml 2> output_time python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt - cat timer.txt - export VAR_TIME=$(grep "gungho_model" timer.txt | cut -d'|' -f5) + cat output_time + export VAR_TIME=$(cat output_time) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" echo "build_time=${BUILD_ELAPSED}" >> "${GITHUB_OUTPUT}" @@ -186,10 +186,10 @@ jobs: rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run export OMP_NUM_THREADS=12 export CUDA_VISIBLE_DEVICES=1 - mpirun -n 1 ../bin/gungho_model configuration.nml + /usr/bin/time --format=%e mpirun -n 1 ../bin/gungho_model configuration.nml 2> output_time python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt - cat timer.txt - export VAR_TIME=$(grep "gungho_model" timer.txt | cut -d'|' -f5) + cat output_time + export VAR_TIME=$(cat output_time) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" # PSyclone, compile and run MetOffice LFRic with all optimisations and 6 mpi ranks each with 2 OpenMP threads @@ -215,10 +215,10 @@ jobs: cd applications/gungho_model/example rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run export OMP_NUM_THREADS=2 - mpirun -n 6 ../bin/gungho_model configuration.nml + /usr/bin/time --format=%e mpirun -n 6 ../bin/gungho_model configuration.nml 2> output_time python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt - cat timer.txt - export VAR_TIME=$(grep "gungho_model" timer.txt | cut -d'|' -f5) + cat output_time + export VAR_TIME=$(cat output_time) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" # PSyclone, compile and run MetOffice LFRic with all optimisations and 6 mpi ranks each with 2 OpenMP threads @@ -244,10 +244,10 @@ jobs: cd applications/gungho_model/example rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run export OMP_NUM_THREADS=2 - mpirun -n 6 ../bin/gungho_model configuration.nml + /usr/bin/time --format=%e mpirun -n 6 ../bin/gungho_model configuration.nml 2> output_time python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt - cat timer.txt - export VAR_TIME=$(grep "gungho_model" timer.txt | cut -d'|' -f5) + cat output_time + export VAR_TIME=$(cat output_time) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" - name: LFRic Atm PSyclone transmutation @@ -270,14 +270,13 @@ jobs: # Run the app with 8 threads and no MPI # (with MPI it currently fails to initialise the mesh - even with no psyclone) cd applications/lfric_atm/example/ - OMP_NUM_THREADS=8 mpirun -n 1 ../bin/lfric_atm configuration.nml + /usr/bin/time --format=%e OMP_NUM_THREADS=8 mpirun -n 1 ../bin/lfric_atm configuration.nml 2> output_time # And compare the results python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/lfric_atm-checksums.txt lfric_atm-checksums.txt - cat timer.txt - export VAR_TIME=$(grep "lfric_atm" timer.txt | cut -d'|' -f5) + cat output_time + export VAR_TIME=$(cat output_time) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" - echo "build_time=${BUILD_ELAPSED}" >> "${GITHUB_OUTPUT}" upload_if_on_mirror: if: ${{ github.repository == 'stfc/PSyclone-mirror' }} From bc0bef4aeb71fa4e2a07124cf84cadcc9e30d749 Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Wed, 18 Mar 2026 16:21:02 +0000 Subject: [PATCH 04/19] typo in tests --- .github/workflows/lfric_test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index a05ca4e798..8a42477fe5 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -155,7 +155,7 @@ jobs: rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run export OMP_NUM_THREADS=12 export CUDA_VISIBLE_DEVICES=1 - /usr/bin/time --format=%empirun -n 1 ../bin/gungho_model configuration.nml 2> output_time + /usr/bin/time --format=%e mpirun -n 1 ../bin/gungho_model configuration.nml 2> output_time python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt cat output_time export VAR_TIME=$(cat output_time) @@ -270,7 +270,7 @@ jobs: # Run the app with 8 threads and no MPI # (with MPI it currently fails to initialise the mesh - even with no psyclone) cd applications/lfric_atm/example/ - /usr/bin/time --format=%e OMP_NUM_THREADS=8 mpirun -n 1 ../bin/lfric_atm configuration.nml 2> output_time + OMP_NUM_THREADS=8 /usr/bin/time --format=%e mpirun -n 1 ../bin/lfric_atm configuration.nml 2> output_time # And compare the results python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/lfric_atm-checksums.txt lfric_atm-checksums.txt From afe2e58f8cd3bc25f07742b8be2cbcb49e61db5c Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Thu, 19 Mar 2026 10:09:01 +0000 Subject: [PATCH 05/19] Fixed no stderr saved to file --- .github/workflows/lfric_test.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index 8a42477fe5..55ae765890 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -123,7 +123,7 @@ jobs: # Number of OMP threads have to be set even when psyclone does not inject OpenMP # because some psykal-lite routines have it. export OMP_NUM_THREADS=1 - /usr/bin/time --format=%e mpirun -n 12 ../bin/gungho_model configuration.nml 2> output_time + /usr/bin/time --format=%e mpirun -n 12 ../bin/gungho_model configuration.nml 2> >(tee output_time) python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt cat output_time export VAR_TIME=$(cat output_time) @@ -186,7 +186,7 @@ jobs: rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run export OMP_NUM_THREADS=12 export CUDA_VISIBLE_DEVICES=1 - /usr/bin/time --format=%e mpirun -n 1 ../bin/gungho_model configuration.nml 2> output_time + /usr/bin/time --format=%e mpirun -n 1 ../bin/gungho_model configuration.nml 2> >(tee output_time) python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt cat output_time export VAR_TIME=$(cat output_time) @@ -215,7 +215,7 @@ jobs: cd applications/gungho_model/example rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run export OMP_NUM_THREADS=2 - /usr/bin/time --format=%e mpirun -n 6 ../bin/gungho_model configuration.nml 2> output_time + /usr/bin/time --format=%e mpirun -n 6 ../bin/gungho_model configuration.nml 2> >(tee output_time) python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt cat output_time export VAR_TIME=$(cat output_time) @@ -244,7 +244,7 @@ jobs: cd applications/gungho_model/example rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run export OMP_NUM_THREADS=2 - /usr/bin/time --format=%e mpirun -n 6 ../bin/gungho_model configuration.nml 2> output_time + /usr/bin/time --format=%e mpirun -n 6 ../bin/gungho_model configuration.nml 2> >(tee output_time) python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt cat output_time export VAR_TIME=$(cat output_time) @@ -270,7 +270,7 @@ jobs: # Run the app with 8 threads and no MPI # (with MPI it currently fails to initialise the mesh - even with no psyclone) cd applications/lfric_atm/example/ - OMP_NUM_THREADS=8 /usr/bin/time --format=%e mpirun -n 1 ../bin/lfric_atm configuration.nml 2> output_time + OMP_NUM_THREADS=8 /usr/bin/time --format=%e mpirun -n 1 ../bin/lfric_atm configuration.nml 2> >(tee output_time) # And compare the results python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/lfric_atm-checksums.txt lfric_atm-checksums.txt From dc2aa22ee643297cefcd4b6155e7025dcbec6d29 Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Thu, 19 Mar 2026 11:25:03 +0000 Subject: [PATCH 06/19] Update to latest --- .github/workflows/lfric_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index 55ae765890..9de0a494be 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -42,7 +42,7 @@ on: push env: - LFRIC_APPS_HASH: 4182f2f69d2186a9b1a91ec75d87904ca2049117 + LFRIC_APPS_HASH: a6cbf89bb05fdd433041b6265651d90557890263 PYTHON_VERSION: "3.14" GNU_TOOLCHAIN: gnu14_openmpi NVHPC_TOOLCHAIN: nvhpc25_11_openmpi From 007127219b8ae345d89293ad61994c9415fecdd4 Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Thu, 19 Mar 2026 13:42:00 +0000 Subject: [PATCH 07/19] Fixed some timing issues --- .github/workflows/lfric_test.yml | 36 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index 9de0a494be..0c8ac75a6a 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -123,10 +123,10 @@ jobs: # Number of OMP threads have to be set even when psyclone does not inject OpenMP # because some psykal-lite routines have it. export OMP_NUM_THREADS=1 - /usr/bin/time --format=%e mpirun -n 12 ../bin/gungho_model configuration.nml 2> >(tee output_time) + export START_TIME=$SECONDS + /usr/bin/time --format=%e mpirun -n 12 ../bin/gungho_model configuration.nml python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt - cat output_time - export VAR_TIME=$(cat output_time) + export VAR_TIME=$((${SECONDS}-${START_TIME})) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" # PSyclone, compile and run MetOffice gungho_model on GPU @@ -155,10 +155,10 @@ jobs: rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run export OMP_NUM_THREADS=12 export CUDA_VISIBLE_DEVICES=1 - /usr/bin/time --format=%e mpirun -n 1 ../bin/gungho_model configuration.nml 2> output_time + export START_TIME=$SECONDS + /usr/bin/time --format=%e mpirun -n 1 ../bin/gungho_model configuration.nml python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt - cat output_time - export VAR_TIME=$(cat output_time) + export VAR_TIME=$((${SECONDS}-${START_TIME})) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" echo "build_time=${BUILD_ELAPSED}" >> "${GITHUB_OUTPUT}" @@ -186,10 +186,10 @@ jobs: rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run export OMP_NUM_THREADS=12 export CUDA_VISIBLE_DEVICES=1 - /usr/bin/time --format=%e mpirun -n 1 ../bin/gungho_model configuration.nml 2> >(tee output_time) + export START_TIME=$SECONDS + /usr/bin/time --format=%e mpirun -n 1 ../bin/gungho_model configuration.nml python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt - cat output_time - export VAR_TIME=$(cat output_time) + export VAR_TIME=$((${SECONDS}-${START_TIME})) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" # PSyclone, compile and run MetOffice LFRic with all optimisations and 6 mpi ranks each with 2 OpenMP threads @@ -215,10 +215,10 @@ jobs: cd applications/gungho_model/example rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run export OMP_NUM_THREADS=2 - /usr/bin/time --format=%e mpirun -n 6 ../bin/gungho_model configuration.nml 2> >(tee output_time) + export START_TIME=$SECONDS + /usr/bin/time --format=%e mpirun -n 6 ../bin/gungho_model configuration.nml python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt - cat output_time - export VAR_TIME=$(cat output_time) + export VAR_TIME=$((${SECONDS}-${START_TIME})) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" # PSyclone, compile and run MetOffice LFRic with all optimisations and 6 mpi ranks each with 2 OpenMP threads @@ -244,10 +244,10 @@ jobs: cd applications/gungho_model/example rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run export OMP_NUM_THREADS=2 - /usr/bin/time --format=%e mpirun -n 6 ../bin/gungho_model configuration.nml 2> >(tee output_time) + export START_TIME=$SECONDS + /usr/bin/time --format=%e mpirun -n 6 ../bin/gungho_model configuration.nml python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt - cat output_time - export VAR_TIME=$(cat output_time) + export VAR_TIME=$((${SECONDS}-${START_TIME})) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" - name: LFRic Atm PSyclone transmutation @@ -270,12 +270,12 @@ jobs: # Run the app with 8 threads and no MPI # (with MPI it currently fails to initialise the mesh - even with no psyclone) cd applications/lfric_atm/example/ - OMP_NUM_THREADS=8 /usr/bin/time --format=%e mpirun -n 1 ../bin/lfric_atm configuration.nml 2> >(tee output_time) + export START_TIME=$SECONDS + OMP_NUM_THREADS=8 /usr/bin/time --format=%e mpirun -n 1 ../bin/lfric_atm configuration.nml # And compare the results python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/lfric_atm-checksums.txt lfric_atm-checksums.txt - cat output_time - export VAR_TIME=$(cat output_time) + export VAR_TIME=$((${SECONDS}-${START_TIME})) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" upload_if_on_mirror: From be8fbf21f586a1101802700dc4577187acacbeb8 Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Thu, 19 Mar 2026 14:23:26 +0000 Subject: [PATCH 08/19] Fixes to lfric_test to avoid dumping the time into stdout --- .github/workflows/lfric_test.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index 0c8ac75a6a..5657e7b423 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -124,7 +124,7 @@ jobs: # because some psykal-lite routines have it. export OMP_NUM_THREADS=1 export START_TIME=$SECONDS - /usr/bin/time --format=%e mpirun -n 12 ../bin/gungho_model configuration.nml + /mpirun -n 12 ../bin/gungho_model configuration.nml python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt export VAR_TIME=$((${SECONDS}-${START_TIME})) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" @@ -156,7 +156,7 @@ jobs: export OMP_NUM_THREADS=12 export CUDA_VISIBLE_DEVICES=1 export START_TIME=$SECONDS - /usr/bin/time --format=%e mpirun -n 1 ../bin/gungho_model configuration.nml + /mpirun -n 1 ../bin/gungho_model configuration.nml python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt export VAR_TIME=$((${SECONDS}-${START_TIME})) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" @@ -187,7 +187,7 @@ jobs: export OMP_NUM_THREADS=12 export CUDA_VISIBLE_DEVICES=1 export START_TIME=$SECONDS - /usr/bin/time --format=%e mpirun -n 1 ../bin/gungho_model configuration.nml + /mpirun -n 1 ../bin/gungho_model configuration.nml python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt export VAR_TIME=$((${SECONDS}-${START_TIME})) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" @@ -216,7 +216,7 @@ jobs: rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run export OMP_NUM_THREADS=2 export START_TIME=$SECONDS - /usr/bin/time --format=%e mpirun -n 6 ../bin/gungho_model configuration.nml + /mpirun -n 6 ../bin/gungho_model configuration.nml python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt export VAR_TIME=$((${SECONDS}-${START_TIME})) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" @@ -245,7 +245,7 @@ jobs: rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run export OMP_NUM_THREADS=2 export START_TIME=$SECONDS - /usr/bin/time --format=%e mpirun -n 6 ../bin/gungho_model configuration.nml + /mpirun -n 6 ../bin/gungho_model configuration.nml python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt export VAR_TIME=$((${SECONDS}-${START_TIME})) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" @@ -271,7 +271,7 @@ jobs: # (with MPI it currently fails to initialise the mesh - even with no psyclone) cd applications/lfric_atm/example/ export START_TIME=$SECONDS - OMP_NUM_THREADS=8 /usr/bin/time --format=%e mpirun -n 1 ../bin/lfric_atm configuration.nml + OMP_NUM_THREADS=8 /mpirun -n 1 ../bin/lfric_atm configuration.nml # And compare the results python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/lfric_atm-checksums.txt lfric_atm-checksums.txt From 0eb41b6f0131f84f5e3463b7662c475db1e64122 Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Thu, 19 Mar 2026 14:24:17 +0000 Subject: [PATCH 09/19] Fixed typo --- .github/workflows/lfric_test.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index 5657e7b423..689701da60 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -124,7 +124,7 @@ jobs: # because some psykal-lite routines have it. export OMP_NUM_THREADS=1 export START_TIME=$SECONDS - /mpirun -n 12 ../bin/gungho_model configuration.nml + mpirun -n 12 ../bin/gungho_model configuration.nml python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt export VAR_TIME=$((${SECONDS}-${START_TIME})) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" @@ -156,7 +156,7 @@ jobs: export OMP_NUM_THREADS=12 export CUDA_VISIBLE_DEVICES=1 export START_TIME=$SECONDS - /mpirun -n 1 ../bin/gungho_model configuration.nml + mpirun -n 1 ../bin/gungho_model configuration.nml python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt export VAR_TIME=$((${SECONDS}-${START_TIME})) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" @@ -187,7 +187,7 @@ jobs: export OMP_NUM_THREADS=12 export CUDA_VISIBLE_DEVICES=1 export START_TIME=$SECONDS - /mpirun -n 1 ../bin/gungho_model configuration.nml + mpirun -n 1 ../bin/gungho_model configuration.nml python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt export VAR_TIME=$((${SECONDS}-${START_TIME})) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" @@ -216,7 +216,7 @@ jobs: rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run export OMP_NUM_THREADS=2 export START_TIME=$SECONDS - /mpirun -n 6 ../bin/gungho_model configuration.nml + mpirun -n 6 ../bin/gungho_model configuration.nml python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt export VAR_TIME=$((${SECONDS}-${START_TIME})) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" @@ -245,7 +245,7 @@ jobs: rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run export OMP_NUM_THREADS=2 export START_TIME=$SECONDS - /mpirun -n 6 ../bin/gungho_model configuration.nml + mpirun -n 6 ../bin/gungho_model configuration.nml python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt export VAR_TIME=$((${SECONDS}-${START_TIME})) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" @@ -271,7 +271,7 @@ jobs: # (with MPI it currently fails to initialise the mesh - even with no psyclone) cd applications/lfric_atm/example/ export START_TIME=$SECONDS - OMP_NUM_THREADS=8 /mpirun -n 1 ../bin/lfric_atm configuration.nml + OMP_NUM_THREADS=8 mpirun -n 1 ../bin/lfric_atm configuration.nml # And compare the results python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/lfric_atm-checksums.txt lfric_atm-checksums.txt From 0bc25eddfa7e5656849d64d4b8539daa1f19159c Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Thu, 19 Mar 2026 16:24:54 +0000 Subject: [PATCH 10/19] Hash update --- .github/workflows/lfric_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index 689701da60..31897a6dac 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -42,7 +42,7 @@ on: push env: - LFRIC_APPS_HASH: a6cbf89bb05fdd433041b6265651d90557890263 + LFRIC_APPS_HASH: 707c7e9e5cd551cd3ad8626df1a934299abfe7ba PYTHON_VERSION: "3.14" GNU_TOOLCHAIN: gnu14_openmpi NVHPC_TOOLCHAIN: nvhpc25_11_openmpi From 2167f74cc4c343dca545e55b8b6b3041e12791ad Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Thu, 19 Mar 2026 16:44:31 +0000 Subject: [PATCH 11/19] Latest apps hash --- .github/workflows/lfric_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index 31897a6dac..2f5e9e09bd 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -42,7 +42,7 @@ on: push env: - LFRIC_APPS_HASH: 707c7e9e5cd551cd3ad8626df1a934299abfe7ba + LFRIC_APPS_HASH: 9eba82021e2d7ea3ab25b57f306c1ae1f59649f6 PYTHON_VERSION: "3.14" GNU_TOOLCHAIN: gnu14_openmpi NVHPC_TOOLCHAIN: nvhpc25_11_openmpi From d9979b8a0af126920cd9177181b9fe76e7cba667 Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Mon, 23 Mar 2026 10:37:51 +0000 Subject: [PATCH 12/19] apps hash update --- .github/workflows/lfric_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index 2f5e9e09bd..e1918ed747 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -42,7 +42,7 @@ on: push env: - LFRIC_APPS_HASH: 9eba82021e2d7ea3ab25b57f306c1ae1f59649f6 + LFRIC_APPS_HASH: d02d87efb53171bb8ae416fc87ed1c30b5a615a7 PYTHON_VERSION: "3.14" GNU_TOOLCHAIN: gnu14_openmpi NVHPC_TOOLCHAIN: nvhpc25_11_openmpi From 11862714946b234cbcfec7bceb9297a87623a3e9 Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Mon, 23 Mar 2026 12:13:17 +0000 Subject: [PATCH 13/19] hash update --- .github/workflows/lfric_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index e1918ed747..fded2763ff 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -42,7 +42,7 @@ on: push env: - LFRIC_APPS_HASH: d02d87efb53171bb8ae416fc87ed1c30b5a615a7 + LFRIC_APPS_HASH: 30c0eb02c170600fbd2e7ec32731646f0b1e69f2 PYTHON_VERSION: "3.14" GNU_TOOLCHAIN: gnu14_openmpi NVHPC_TOOLCHAIN: nvhpc25_11_openmpi From d711e485f5b84754aed71b814948c8354b882fd4 Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Mon, 23 Mar 2026 13:44:10 +0000 Subject: [PATCH 14/19] hash updates --- .github/workflows/lfric_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index fded2763ff..9d055aedc5 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -42,7 +42,7 @@ on: push env: - LFRIC_APPS_HASH: 30c0eb02c170600fbd2e7ec32731646f0b1e69f2 + LFRIC_APPS_HASH: 0044a04713266bf984afbd58d7aceea05ac3d2ee PYTHON_VERSION: "3.14" GNU_TOOLCHAIN: gnu14_openmpi NVHPC_TOOLCHAIN: nvhpc25_11_openmpi From a1a2518625887c68de1ab9774f52f37d0aa3e9c6 Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Mon, 23 Mar 2026 16:02:42 +0000 Subject: [PATCH 15/19] More lfric fixes --- .github/workflows/lfric_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index 9d055aedc5..e73c4e5b70 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -42,7 +42,7 @@ on: push env: - LFRIC_APPS_HASH: 0044a04713266bf984afbd58d7aceea05ac3d2ee + LFRIC_APPS_HASH: a1dd92beec2d627a107accc3fc6c8426566f089a PYTHON_VERSION: "3.14" GNU_TOOLCHAIN: gnu14_openmpi NVHPC_TOOLCHAIN: nvhpc25_11_openmpi From 44ba96710aec7c065e17c898a9970ea655d8bc7d Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Mon, 23 Mar 2026 16:18:35 +0000 Subject: [PATCH 16/19] another hash update --- .github/workflows/lfric_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index e73c4e5b70..7c4f671f3b 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -42,7 +42,7 @@ on: push env: - LFRIC_APPS_HASH: a1dd92beec2d627a107accc3fc6c8426566f089a + LFRIC_APPS_HASH: 948b9ec1a7ae6ef110b97ed45ced8d4b71079f34 PYTHON_VERSION: "3.14" GNU_TOOLCHAIN: gnu14_openmpi NVHPC_TOOLCHAIN: nvhpc25_11_openmpi From 3ab46d9a5c9e855485e11535863421a32c4faf43 Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Tue, 24 Mar 2026 09:27:40 +0000 Subject: [PATCH 17/19] Test for lfric_atm time --- .github/workflows/lfric_test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index 7c4f671f3b..875f4cb7d9 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -276,6 +276,7 @@ jobs: # And compare the results python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/lfric_atm-checksums.txt lfric_atm-checksums.txt export VAR_TIME=$((${SECONDS}-${START_TIME})) + echo "time=${VAR_TIME}" echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" upload_if_on_mirror: From 3e9a3df7f2d3d9dd1a845c29f28624d86f3ac79f Mon Sep 17 00:00:00 2001 From: LonelyCat124 <3043914+LonelyCat124@users.noreply.github.com.> Date: Tue, 24 Mar 2026 10:05:23 +0000 Subject: [PATCH 18/19] Readded build time to lfric_atm --- .github/workflows/lfric_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index 875f4cb7d9..755b73f926 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -276,8 +276,8 @@ jobs: # And compare the results python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/lfric_atm-checksums.txt lfric_atm-checksums.txt export VAR_TIME=$((${SECONDS}-${START_TIME})) - echo "time=${VAR_TIME}" echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" + echo "build_time=${BUILD_ELAPSED}" >> "${GITHUB_OUTPUT}" upload_if_on_mirror: if: ${{ github.repository == 'stfc/PSyclone-mirror' }} From 193ea128754c5fe112b20157ad9f65c7fc6f3b45 Mon Sep 17 00:00:00 2001 From: Sergi Siso Date: Wed, 25 Mar 2026 12:20:35 +0000 Subject: [PATCH 19/19] #3381 Update changelog --- changelog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelog b/changelog index 3608b46046..f8561eb24e 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ + 71) PR #3381. Update integration tests to LFRic_apps 3.1.1 + 70) PR #3358 for #1734, #2975 and #2949. Improve symbol table consistency with better copies, validation checks and symbol localisation operations.