-
Notifications
You must be signed in to change notification settings - Fork 71
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Run CI jobs on Lumi via GitLab (#265)
- Loading branch information
Showing
2 changed files
with
233 additions
and
0 deletions.
There are no files selected for viewing
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,130 @@ | ||
workflow: | ||
rules: | ||
- if: $CI_PIPELINE_SOURCE == "api" | ||
|
||
default: | ||
tags: | ||
- lumi | ||
|
||
variables: | ||
SCHEDULER_PARAMETERS: >- | ||
--account=project_465000454 | ||
--nodes=1 | ||
--ntasks=1 | ||
--cpus-per-task=4 | ||
--mem-per-cpu=1G | ||
--time=05:00 | ||
${EXTRA_SCHEDULER_PARAMETERS} | ||
EXTRA_SCHEDULER_PARAMETERS: | ||
|
||
.gpu: | ||
variables: | ||
EXTRA_SCHEDULER_PARAMETERS: >- | ||
--partition=dev-g | ||
--gpus=1 | ||
.cpu: | ||
variables: | ||
EXTRA_SCHEDULER_PARAMETERS: >- | ||
--partition=debug | ||
.cce: | ||
variables: | ||
# Core variables: | ||
FC: ftn | ||
# Convenience variables: | ||
VERSION_FCFLAGS: -V | ||
COMPILER_MODULES: PrgEnv-cray cce/16.0.1 craype-x86-milan | ||
|
||
.dp: | ||
variables: | ||
FPMODEL: DP | ||
FAILURE_THRESHOLD: "5.8e-2" | ||
|
||
.sp: | ||
variables: | ||
FPMODEL: SP | ||
FAILURE_THRESHOLD: "3.5e-1" | ||
|
||
# | ||
# Set up Python virtual environment | ||
# | ||
.python-common: | ||
variables: | ||
PYHOME: ${CI_PROJECT_DIR}/python-venv | ||
FF_USE_FASTZIP: 1 | ||
|
||
setup-python: | ||
extends: | ||
- .cpu | ||
- .python-common | ||
script: | ||
- test ! -d "${PYHOME}" || exit 0 | ||
- module load cray-python | ||
- python -m venv ${PYHOME} | ||
- ${PYHOME}/bin/python -m pip install --upgrade pip | ||
- ${PYHOME}/bin/python -m pip install dask[array] netCDF4 numpy xarray | ||
cache: | ||
# Update the key to regenerate the virtual environment: | ||
key: python-venv-version-1 | ||
paths: | ||
- ${PYHOME} | ||
artifacts: | ||
paths: | ||
- ${PYHOME} | ||
expire_in: 60 minutes | ||
|
||
.common: | ||
extends: .python-common | ||
needs: | ||
- setup-python | ||
variables: | ||
# Make variables: | ||
RRTMGP_ROOT: ${CI_PROJECT_DIR} | ||
RRTMGP_DATA: ${CI_PROJECT_DIR}/rrtmgp-data | ||
before_script: | ||
- module --force purge | ||
- module load ${COMPILER_MODULES} ${EXTRA_COMPILER_MODULES} cray-hdf5 cray-netcdf | ||
# Extend the existing environment variables: | ||
- export PATH="${PYHOME}/bin:${PATH}" | ||
script: | ||
# | ||
# Build libraries, examples and tests | ||
# | ||
- ${FC} ${VERSION_FCFLAGS} | ||
- make libs | ||
- make -C build separate-libs | ||
# | ||
# Check out data | ||
# | ||
- git clone --depth 1 https://github.com/earth-system-radiation/rrtmgp-data.git "${RRTMGP_DATA}" | ||
# | ||
# Run examples and tests | ||
# | ||
- make tests | ||
# | ||
# Compare the results | ||
# | ||
- make check | ||
|
||
.cce-gpu-openacc: | ||
extends: | ||
- .gpu | ||
- .cce | ||
- .common | ||
variables: | ||
# Compiler flags used for ICON model: | ||
FCFLAGS: -hacc -hadd_paren -Ktrap=divz,ovf,inv -hflex_mp=intolerant -hfp1 -g -DRTE_USE_${FPMODEL} | ||
RTE_KERNELS: accel | ||
# Convenience variables: | ||
EXTRA_COMPILER_MODULES: craype-accel-amd-gfx90a rocm | ||
|
||
cce-gpu-openacc-DP: | ||
extends: | ||
- .dp | ||
- .cce-gpu-openacc | ||
|
||
cce-gpu-openacc-SP: | ||
extends: | ||
- .dp | ||
- .cce-gpu-openacc |