Climate and Weather Software Deployment¶
The uenv deployed on Santis and Balfrin are generated from two sources:
- cscs managed: uenv created and supported by CSCS, including:
- netcdf-tools;
- Programming environments;
- and tools including Linaro Forge.
- community managed uenv recipes in the C2SM/software-stack-recipes
- icon
climanaon Santis.fdbuenv on the MCH systems.
The community managed uenv are a distinguishing feature of the Climate and Weather Platform. They provide software for all users, focussed particularly on ICON workflows.
Note
The uenv deployed on Santis and Balfrin are available to all users who can log into the respective system. This page describes the additional steps required to deploy uenv for users on the system.
Permission to Trigger Pipelines¶
Uenv recipes are stored in the GitHub repository C2SM/software-stack-recipes, with a pipeline based on the CSCS CI/CD service that builds and tests uenv. The GitHub repository is public, and anybody with a GitHub account can make a pull request with a new recipe, or a modification to an existing repository. However, to trigger CI/CD builds your GitHub user account must be given permission to trigger builds.
The CI/CD project is administered by staff from C2SM, MeteoSwiss (MCH) and CSCS. Contact one of the following people with your GitHub user name to request permission:
- Matthieu Leclair at C2SM
- Mikael Stellio at C2SM
- Ben Cumming at CSCS
- Mikael Simberg at CSCS
- Nina Burgdorfer at MCH
- Daniel Hupp at MCH
Note
MCH staff working on MCH workflows should contact one of the MCH representatives. Other users should contact a representative from C2SM or CSCS.
Permission to run CI/CD is reserved for users who contribute to uenv agreed upon by C2SM, MCH and CSCS, and is not automatically granted to all users.
It is possible to provide software on Alps using the uenv build service.
They will perform the following steps:
- Give you permission to trigger builds in the climate-weather-uenv CI/CD project;
- Give you write permission to the C2SM/software-stack-recipes (only if strictly required - most users will only need permission to trigger pipelines).
Creating a New Image¶
The workflow for both creating a new version of a uenv, or creating a new uenv is the same. We follow the fork and branch workflow described in the GitHub documentation.
- Create a fork of the C2SM/software-stack-recipes repository.
- Clone your fork, and create a branch for your changes.
- Add the new recipe to the repository
- if making a new version of an existing recipe (add example)
- Update information in the
config.yamlconfiguration file with details of your new recipe. - Make a pull request to the main C2sm/software-stack-recipes repository.
- start the title of the pull request with the name of the uenv, for example
fdb: update to fdb 5.19.0.
- start the title of the pull request with the name of the uenv, for example
Once the pull request has been opened, the pipeline does not automatically start building a uenv.
Builds are triggered using a PR comment by a user who as been added to the CI/CD configuration.
Build fdb/5.19 on balfrin
Note that uenv for use on Balfrin that do not require GPU should target the zen3 micro-architecture.
These images can be run on both the CPU and GPU nodes of Balfrin.
Build icon-dsl/25.12 on santis
All uenv on Santis target the gh200 micro-architecture, even those that are only run on the Grace CPU.
Build mch/v8 on Balfrin
Uenv for GPU workloads on Balfrin should target the a100 micro-architecture.
The mch software stack is used by both CPU and GPU nodes, because it provides two “views”: one that does not include any GPU libraries or CUDA dependencies.
The build pipeline runs a job on the target system, and on success will push the image into the build namespace.
You will be able to find all builds on a system by logging into the system, then using the build:: prefix when searching.
Finding fdb builds
# search for all builds of fdb
$ uenv image find build::fdb
# search for builds of fdb/5.18
$ uenv image find build::fdb/5.18
uenv arch system id size(MB) date
fdb/5.18:2110858405 zen3 balfrin f7fb7baea157cce0 701 2025-10-21
fdb/5.18:2162754541 zen3 balfrin 33ef8bf54533c871 786 2025-11-17
...
fdb/5.18:2339783178 zen3 balfrin 6a0da38bb279de97 843 2026-02-20
# pull a build for testing
$ uenv image pull build::fdb/5.18:2339783178
$ uenv start build::fdb/5.18:2339783178
Final deployment¶
The final stage of deployment is to copy the uenv generated by the pipeline from the build:: namespace to the deploy:: namespace.
This step can only be performed by CSCS staff. To deploy an image, contact Mikael or Ben via email or Slack with the a message like the following:
Please deploy
build::fdb/5.18:2339783178on Balfrin asfdb/5.18:v2.
Once deployed, the example above would be visible to users typing uenv image find or uenv image find fdb on Balfrin.