Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
23 changes: 10 additions & 13 deletions .github/workflows/extraction_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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
Expand All @@ -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}

Expand Down
22 changes: 12 additions & 10 deletions .github/workflows/lfric_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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: |
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down
Loading