Skip to content

Commit

Permalink
#2440 Update CI software dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
nmnobre committed Dec 15, 2023
1 parent d3cc718 commit 15cdbf5
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 21 deletions.
28 changes: 19 additions & 9 deletions .github/workflows/compilation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,14 @@ on:
push

env:
CUDA_VERSION: 12.3.0
CUDA_VERSION: 12.3.1
GFORTRAN_VERSION: 13.2.0
NVFORTRAN_VERSION: 23.9
PYTHON_VERSION: 3.12.0
HDF5_VERSION: 1.14.3
NETCDF_C_VERSION: 4.9.2
NETCDF_FORTRAN_VERSION: 4.6.1
NVFORTRAN_VERSION: 23.11
OPENMPI_VERSION: 5.0.0
PYTHON_VERSION: 3.12.1

jobs:
run_if_on_mirror:
Expand Down Expand Up @@ -85,38 +89,44 @@ jobs:
- name: Unit tests with compilation - gfortran
run: |
. .runner_venv/bin/activate
module load gcc/${GFORTRAN_VERSION} openmpi netcdf_fortran
module load gcc/${GFORTRAN_VERSION} openmpi/${OPENMPI_VERSION}
module load hdf5/${HDF5_VERSION} netcdf_c/${NETCDF_C_VERSION} netcdf_fortran/${NETCDF_FORTRAN_VERSION}
pytest -n 4 --f90=gfortran --f90flags="-ffree-line-length-none" --compile --compileopencl src/psyclone/tests
- name: Unit tests with compilation - nvfortran
run: |
. .runner_venv/bin/activate
module load nvidia-hpcsdk/${NVFORTRAN_VERSION} netcdf_fortran
module load nvidia-hpcsdk/${NVFORTRAN_VERSION}
module load hdf5/${HDF5_VERSION} netcdf_c/${NETCDF_C_VERSION} netcdf_fortran/${NETCDF_FORTRAN_VERSION}
pytest -n 4 --f90=nvfortran --compile --compileopencl src/psyclone/tests
- name: Examples with compilation - gfortran
run: |
. .runner_venv/bin/activate
make -C examples allclean
# Although we're using gfortran, we link with CUDA's OpenCL library
module load gcc/${GFORTRAN_VERSION} openmpi netcdf_fortran
module load gcc/${GFORTRAN_VERSION} openmpi/${OPENMPI_VERSION}
module load hdf5/${HDF5_VERSION} netcdf_c/${NETCDF_C_VERSION} netcdf_fortran/${NETCDF_FORTRAN_VERSION}
module load cuda/${CUDA_VERSION}
F90=gfortran make -C examples compile
- name: Tutorials with compilation - gfortran
run: |
. .runner_venv/bin/activate
make -C tutorial/practicals allclean
module load gcc/${GFORTRAN_VERSION} openmpi netcdf_fortran
module load gcc/${GFORTRAN_VERSION} openmpi/${OPENMPI_VERSION}
module load hdf5/${HDF5_VERSION} netcdf_c/${NETCDF_C_VERSION} netcdf_fortran/${NETCDF_FORTRAN_VERSION}
make -C tutorial/practicals compile
- name: Examples with compilation - nvfortran
run: |
. .runner_venv/bin/activate
make -C examples allclean
module load nvidia-hpcsdk/${NVFORTRAN_VERSION} netcdf_fortran
module load nvidia-hpcsdk/${NVFORTRAN_VERSION}
module load hdf5/${HDF5_VERSION} netcdf_c/${NETCDF_C_VERSION} netcdf_fortran/${NETCDF_FORTRAN_VERSION}
F90=nvfortran F90FLAGS="-acc -Minfo=all" make -C examples compile
- name: Tutorials with compilation - nvfortran
run: |
. .runner_venv/bin/activate
make -C tutorial/practicals allclean
module load nvidia-hpcsdk/${NVFORTRAN_VERSION} netcdf_fortran
module load nvidia-hpcsdk/${NVFORTRAN_VERSION}
module load hdf5/${HDF5_VERSION} netcdf_c/${NETCDF_C_VERSION} netcdf_fortran/${NETCDF_FORTRAN_VERSION}
# TODO #2251. Cannot build the LFRic practicals with nvfortran 23.5-23.9
# because the compilation of nan_test.f90 gives an ICE.
F90=nvfortran F90FLAGS="-acc -Minfo=all" make -C tutorial/practicals/nemo compile
2 changes: 1 addition & 1 deletion .github/workflows/lfric_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
runs-on: self-hosted
env:
LFRIC_REV: 45376
PYTHON_VERSION: 3.12.0
PYTHON_VERSION: 3.12.1

steps:
- uses: actions/checkout@v3
Expand Down
27 changes: 16 additions & 11 deletions .github/workflows/nemo_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,13 @@ jobs:
if: ${{ github.repository == 'stfc/PSyclone-mirror' }}
runs-on: self-hosted
env:
HDF5_VERSION: 1.14.3
NETCDF_C_VERSION: 4.9.2
NETCDF_FORTRAN_VERSION: 4.6.1
NVFORTRAN_VERSION: 23.7
PERL_VERSION: 5.38.0
PYTHON_VERSION: 3.12.0
ONEAPI_VERSION: 2024.0.0
PERL_VERSION: 5.38.2
PYTHON_VERSION: 3.12.1

steps:
- uses: actions/checkout@v3
Expand Down Expand Up @@ -84,7 +88,8 @@ jobs:
export NEMO_DIR=${HOME}/NEMO
cd $PSYCLONE_NEMO_DIR
make -j 4 passthrough
module load nvidia-hpcsdk/${NVFORTRAN_VERSION} netcdf_fortran
module load nvidia-hpcsdk/${NVFORTRAN_VERSION}
module load hdf5/${HDF5_VERSION} netcdf_c/${NETCDF_C_VERSION} netcdf_fortran/${NETCDF_FORTRAN_VERSION}
module load perl/${PERL_VERSION}
make -j 4 compile-passthrough
Expand All @@ -96,7 +101,8 @@ jobs:
export NEMO_DIR=${HOME}/NEMO
cd $PSYCLONE_NEMO_DIR
make -j 4 openmp_gpu
module load nvidia-hpcsdk/${NVFORTRAN_VERSION} netcdf_fortran
module load nvidia-hpcsdk/${NVFORTRAN_VERSION}
module load hdf5/${HDF5_VERSION} netcdf_c/${NETCDF_C_VERSION} netcdf_fortran/${NETCDF_FORTRAN_VERSION}
module load perl/${PERL_VERSION}
make -j 4 compile-openmp_gpu
export NV_ACC_POOL_THRESHOLD=75
Expand Down Expand Up @@ -125,7 +131,8 @@ jobs:
export NEMO_DIR=${HOME}/NEMO
cd $PSYCLONE_NEMO_DIR
make -j 4 openacc_kernels
module load nvidia-hpcsdk/${NVFORTRAN_VERSION} netcdf_fortran
module load nvidia-hpcsdk/${NVFORTRAN_VERSION}
module load hdf5/${HDF5_VERSION} netcdf_c/${NETCDF_C_VERSION} netcdf_fortran/${NETCDF_FORTRAN_VERSION}
module load perl/${PERL_VERSION}
COMPILER_ARCH=linux_nvidia_acc_gpu make -j 4 compile-openacc_kernels
export NV_ACC_POOL_THRESHOLD=75
Expand Down Expand Up @@ -155,7 +162,8 @@ jobs:
export NEMO_DIR=${HOME}/NEMO
cd $PSYCLONE_NEMO_DIR
make -j 4 openacc_loops
module load nvidia-hpcsdk/${NVFORTRAN_VERSION} netcdf_fortran
module load nvidia-hpcsdk/${NVFORTRAN_VERSION}
module load hdf5/${HDF5_VERSION} netcdf_c/${NETCDF_C_VERSION} netcdf_fortran/${NETCDF_FORTRAN_VERSION}
module load perl/${PERL_VERSION}
COMPILER_ARCH=linux_nvidia_acc_gpu make -j 4 compile-openacc_loops
export NV_ACC_POOL_THRESHOLD=75
Expand Down Expand Up @@ -183,8 +191,8 @@ jobs:
- name: NEMO ECMWF OpenMP for CPU
run: |
. .runner_venv/bin/activate
module rm nvidia-hpcsdk
module load intel/oneapi compiler mpi
module load oneapi/${ONEAPI_VERSION}
module load hdf5/${HDF5_VERSION} netcdf_c/${NETCDF_C_VERSION} netcdf_fortran/${NETCDF_FORTRAN_VERSION}
module load perl/${PERL_VERSION}
export PSYCLONE_NEMO_DIR=${GITHUB_WORKSPACE}/examples/nemo/scripts
export NEMO_DIR=${HOME}/NEMOGCM_V40
Expand All @@ -196,9 +204,6 @@ jobs:
export MPI_INC_DIR=${I_MPI_ROOT}/include
cd $PSYCLONE_NEMO_DIR
make -j 4 openmp_cpu
export LD_LIBRARY_PATH=/home/ssiso/ecmwf_nemo/ESiWACE2/scripts/dev/netcdf-c-4.9.0/lib/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/ssiso/ecmwf_nemo/ESiWACE2/scripts/dev/netcdf-fortran-4.5.4/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/ssiso/ecmwf_nemo/ESiWACE2/scripts/dev/hdf5-1.12.2/lib/:$LD_LIBRARY_PATH
make -j 4 compile-openmp_cpu
export OMP_NUM_THREADS=4
make run-openmp_cpu |& tee output.txt
Expand Down

0 comments on commit 15cdbf5

Please sign in to comment.