NCAS Computational Modelling Services

Cylc 8

Cylc 8 on PUMA2 and ARCHER2

Overview

Cylc 8 replaces the Python 2 based Cylc 7 software. It is a complete rewrite in Python 3 and contains many changes from Cylc 7, so we encourage you to look at the documentation.

Useful links:

ARCHER2 workflows

Cylc-8 workflows available on ARCHER2:

Cylc 8 idCylc 7 idUM versionDescription
u-dj397u-cc51913.0N48 GA6 (training suite)
u-da412/archer2-13.5GC5-UM

See the instructions for migrating an ARCHER2 Cylc 7 suite to Cylc 8.

Using Cylc 8 on PUMA2 and ARCHER2

Setting the Cylc version

Set the Cylc version in the terminal:

export CYLC_VERSION=8

You should be able to do this alongside any Cylc 7 suites you have running.

Assuming you have set up your ARCHER2 environment (and JASMIN if required) to have Cylc 7 available, you should not need to make any further changes. The workflow will simply pick up the appropriate Cylc version when it runs.

Running a workflow

To run a simple test, checkout u-dj397

rosie co u-dj397

Set your username and project account in rose-suite.conf or in the GUI via rose edit.

Run the workflow with:

cylc vip 

Launch the terminal user interface to check on progress:

cylc tui u-dj397

See the Cylc 8 cheat sheet for an overview of Cylc 8 commands.

Platforms

Tasks are assigned a “platform”, which combines the host and job running method. See the Cylc 8 platform documentation for details.

On PUMA2 the following platforms are available:

  • PUMA2:
    • localhost : background job
  • ARCHER2:
    • archer2 : Slurm job
    • archer2-bg : background on random login node
    • ln0[1-4] : background job on specific login node
  • ARCHER2 with the cylc-run/runN/ share/ and work/ directories symlinked to the NVMe file system:
    • archer2-nvme : Slurm job
    • archer2-nvme-bg : background on random login node
    • ln0[1-4]-nvme : background job on specific login node
  • JASMIN:

Jasmin notes:

  • Multiplexing is no longer needed to submit jobs to Jasmin.
  • You will need to configure your ssh config file to be able to access the sci servers from puma2.

You can test submission to each of the platforms with the workflow u-dj398.

Using the Cylc web UI

Setup

The web-based Cylc UI is available via port-forwarding which requires some setup. Here we provide instructions for Linux, Mac & MobaXterm (Windows).

Edit the ~/.ssh/config file on your laptop so that the ARCHER2 and PUMA2 sections contain:

# PUMA2
Host puma2
User <username>
IdentityFile ~/.ssh/<your-archer-ssh-key>
ProxyJump archer2
ForwardX11 yes

# ARCHER2
Host archer2
Hostname login.archer2.ac.uk
User <username>
IdentityFile ~/.ssh/<your-archer-ssh-key>
ForwardX11 yes

You should now be able to type ssh puma2 and land directly on PUMA2.

Setup an alias on your laptop by adding one for the following to your ~/.bashrc or equivalent depending on whether you are using Linux or a Mac.

Linux

alias puma-ui='PORT=$(shuf -n 1 -i 10000-65000); ssh -t -L ${PORT}:localhost:${PORT} puma2 "bash -l -c \"export CYLC_VERSION=8; cylc gui --no-browser --Application.log_level=WARN --port-retries=0 --port=${PORT}\""'

Mac

alias puma-ui='PORT=$(jot -r 1 10000 65000); ssh -t -L ${PORT}:localhost:${PORT} puma2 "bash -l -c \"export CYLC_VERSION=8; cylc gui --no-browser --Application.log_level=WARN --port-retries=0 --port=${PORT}\""'

Windows

alias puma-ui='PORT=$(shuf -n 1 -i 10000-65000); ssh -t -L ${PORT}:localhost:${PORT} puma2 "bash -l -c \"export CYLC_VERSION=8; cylc gui --no-browser --Application.log_level=WARN --port-retries=0 --port=${PORT}\""'

Start up the cylc web GUI

In a new terminal window type: puma-ui

You will see a response similar to the following:

$ puma-ui
#################################################################################
------------------------------Welcome to PUMA2-----------------------------------
#################################################################################
[C 2026-01-22 08:25:30.367 ServerApp]
To access the server, open this file in a browser:
(continues on next page)
8
NCAS Unified Model Introduction: Practical sessions (Rose/Cylc)
(continued from previous page)
file:///home/n02/n02/ros/.cylc/uiserver/info_files/jpserver-1094362-open.html
Or copy and paste one of these URLs:
http://localhost:20522/cylc?
˓→token=700ab2be96800177d03df31b8140857cab02b9632af45a1d
http://127.0.0.1:20522/cylc?
˓→token=700ab2be96800177d03df31b8140857cab02b9632af45a1d
[W 2026-01-22 08:25:44.242 ServerApp] The websocket_ping_timeout (999999) cannot␣
˓→be longer than the websocket_ping_interval (290).
Setting websocket_ping_timeout=290

Copy and paste one of the http URLs listed into your web browser and you should then see your Cylc GUI load. If you have never used Cylc8 before the Workflows panel will be empty.