Skip to content

Climate and Weather Software Deployment

The uenv deployed on Santis and Balfrin are generated from two sources:

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:

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.

  1. Create a fork of the C2SM/software-stack-recipes repository.
  2. Clone your fork, and create a branch for your changes.
  3. Add the new recipe to the repository
    • if making a new version of an existing recipe (add example)
  4. Update information in the config.yaml configuration file with details of your new recipe.
  5. 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.

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.

cscs-ci run alps;system=balfrin;uarch=zen3;uenv=fdb:5.19

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.

cscs-ci run alps;system=santis;uarch=gh200;uenv=icon-dsl:25.12

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.

cscs-ci run alps;system=balfrin;uarch=a100;uenv=mch:v8

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:2339783178 on Balfrin as fdb/5.18:v2.

Once deployed, the example above would be visible to users typing uenv image find or uenv image find fdb on Balfrin.