diff --git a/.github/workflows/extraction_test.yml b/.github/workflows/extraction_test.yml index ffbb25a38d..726c879fcd 100644 --- a/.github/workflows/extraction_test.yml +++ b/.github/workflows/extraction_test.yml @@ -48,8 +48,8 @@ jobs: if: ${{ github.repository == 'stfc/PSyclone-mirror' }} runs-on: self-hosted env: - LFRIC_APPS_REV: 7536 - LFRIC_CORE_REV: 52054 + LFRIC_APPS_HASH: 152804e4ba768cf54801f034a20131812ecff0f2 + LFRIC_CORE_HASH: 022b139434b06c2431cf857f35f6bfa1ab8edeed PYTHON_VERSION: 3.13 steps: @@ -100,20 +100,17 @@ jobs: cp lib/extract/netcdf/lfric/*90 lfric-baf/infrastructure/build/psyclone/psydata/extract # Fetch the specified version of LFRic apps - source /archive/psyclone-spack/psyclone-spack-Jun25/spack-repo/share/spack/setup-env.sh - spack load fcm/xyl5qxp cd /archive/psyclone-tests/latest-run rm -rf lfric_extraction mkdir lfric_extraction cd lfric_extraction - fcm co --username ${{ secrets.UKMO_USER }} --password '${{ secrets.UKMO_PASSW }}' \ - -r ${LFRIC_APPS_REV} https://code.metoffice.gov.uk/svn/lfric_apps/main/trunk/ lfric_apps - fcm co --username ${{ secrets.UKMO_USER }} --password '${{ secrets.UKMO_PASSW }}' \ - -r ${LFRIC_CORE_REV} https://code.metoffice.gov.uk/svn/lfric/LFRic/trunk/ lfric_core - sed -i "s|lfric_core_rev=$LFRIC_CORE_REV|lfric_core_rev=|g" lfric_apps/dependencies.sh - sed -i "s|lfric_core_sources=|lfric_core_sources=$PWD/lfric_core|g" lfric_apps/dependencies.sh - sed -i "s|use_xios_io=.true.|use_xios_io=.false.|g" lfric_apps/applications/gungho_model/example/configuration.nml - + git clone https://github.com/stfc/lfric_apps + cd lfric_apps + git checkout ${LFRIC_APPS_HASH} + cd .. + git clone https://github.com/stfc/lfric_core + cd lfric_core + git checkout ${LFRIC_CORE_HASH} # Compile GungHo with extraction - name: GungHo Extraction Compilation @@ -137,7 +134,7 @@ jobs: # Copy the lfric source files (BAF copies files into the source tree) # ------------------------------------------------------------------- rm -rf ${RUNDIR} - mkdir -p ${LFRIC_CORE} ${LFRIC_APPS} + mkdir -p ${RUNDIR} cp -r /archive/psyclone-tests/latest-run/lfric_extraction/lfric_core/ ${RUNDIR} cp -r /archive/psyclone-tests/latest-run/lfric_extraction/lfric_apps/ ${RUNDIR} diff --git a/.github/workflows/lfric_test.yml b/.github/workflows/lfric_test.yml index e1f084fcfc..43bf00bd3b 100644 --- a/.github/workflows/lfric_test.yml +++ b/.github/workflows/lfric_test.yml @@ -94,7 +94,7 @@ jobs: cd lfric_apps git checkout ${LFRIC_APPS_HASH} - # PSyclone, compile and run MetOffice LFRic with 6 MPI ranks. + # PSyclone, compile and run MetOffice LFRic Atm with 12 MPI ranks. - name: LFRic passthrough (with DistributedMemory) id: lfric_dist_mem run: | @@ -114,19 +114,22 @@ jobs: export OPT_DIR=${LFRIC_DIR}/applications/gungho_model/optimisation/psyclone-test/psykal mkdir -p ${OPT_DIR} cp ${PSYCLONE_LFRIC_DIR}/does_nothing.py ${OPT_DIR}/global.py + export OPT_DIR=${LFRIC_DIR}/applications/gungho_model/optimisation/psyclone-test/transmute + mkdir -p ${OPT_DIR} + cp ${PSYCLONE_LFRIC_DIR}/does_nothing.py ${OPT_DIR}/global.py # Clean previous version and compile again - rm -rf working-gh-passthrough - ./build/local_build.py -j ${NUM_PARALLEL} -v -p psyclone-test -w working-gh-passthrough gungho_model + rm -rf working-atm-passthrough + ./build/local_build.py -j ${NUM_PARALLEL} -v -p psyclone-test -w working-atm-passthrough lfric_atm # Run - cd applications/gungho_model/example - rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run + cd applications/lfric_atm/example + rm -f timer.txt lfric_atm-checksums.txt # In case there were from a previous run # 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 - python ${PSYCLONE_LFRIC_DIR}/compare_output.py ${PSYCLONE_LFRIC_DIR}/KGOs/gungho_model-checksums.txt gungho_model-checksums.txt + 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 "gungho_model" timer.txt | cut -d'|' -f5) + export VAR_TIME=$(grep "lfric_atm" timer.txt | cut -d'|' -f5) echo "time=${VAR_TIME}" >> "${GITHUB_OUTPUT}" # PSyclone, compile and run MetOffice gungho_model on GPU @@ -269,10 +272,9 @@ jobs: ./build/local_build.py -v -p meto-ex1a -j 16 -w working-atm-transmuted lfric_atm export BUILD_ELAPSED=$((${SECONDS}-${BUILD_START})) - # Run the app with 8 threads and no MPI - # (with MPI it currently fails to initialise the mesh - even with no psyclone) + # Run the app with 2 threads and 6 MPI ranks cd applications/lfric_atm/example/ - OMP_NUM_THREADS=8 mpirun -n 1 ../bin/lfric_atm configuration.nml + OMP_NUM_THREADS=2 mpirun -n 6 ../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