Cylc 8.1 available at NCI

Cylc version 8.1 is released, and is available for Gadi/OOD/ARE by running

module use /g/data/access/ngm/modules
module load cylc/8.1

See the release notes at Cylc Flow 8.1.0 Released - Cylc / Cylc Announce - Cylc Workflow Engine. Cylc 8 is not supported on accessdev.


The following platforms are available to run tasks:

  • gadi_pbs: Jobs submitted to Gadi’s PBS queue. By default tasks will have the PBS flags -P $PROJECT -l storage=gdata/access -W umask=0022 added, these flags can be overridden using the task’s [[[directives]]] section.
  • gadi_background: A gadi node as a background process. If the Cylc server is running on a Gadi login or ARE node this will be the same as localhost, otherwise this will run on one of the Gadi login nodes.

I’d recommend avoiding the localhost platform as it may behave differently based on whether the suite is being run from OOD, ARE, Gadi or the long running servers that are in development. Use gadi_background instead.

Helper macros

Some helper macros are available for your suites for setting up PBS flags. If you find these helpful or think of other macros that could be useful to install centrally please do let me know. The command cylc config PATH will show you what macros render to.

The macro nci_task_directives() will compute an appropriate memory request based on the queue and number of cpus:

{% from "ncimacros" import nci_task_directives %}
    [[ atmos ]]
        inherit = HPC
        [[[ directives ]]]
            {{ nci_task_directives(
                    ncpus = (ATM_PROCX * ATM_PROCY + IOS)*OMP,
                    queue = 'normal',
                    allow_partial_nodes = False,
                    ) }}
Renders to
        platform = gadi_pbs
        inherit = HPC
            -q = normal
            -l ncpus = 34
            -l mem = 135gb
            -l jobfs = 283gb

The macro nci_storage() can be used to combine storage flags required to run a suite with user-specified storage flags from rose-suite.conf (it will also automatically add gdata/access+scratch/$PROJECT+gdata/$PROJECT):

{% from "ncimacros" import nci_storage %}
    [[ HPC ]]
        platform = gadi_pbs
        [[[ directives ]]]
            {{ nci_storage(
                    required = "gdata/ki32",
                    user = NCI_STORAGE | default
                    ) }}
Renders to
        platform = gadi_pbs
            -l storage = gdata/access+scratch/hc46+gdata/hc46+gdata/ki32

Is there a repository where these macros live? How does one contribute a macro? And test it?

Holger’s topic got me thinking.

Modules in the /g/data/access/ngm space are all deployed through NCI’s gitlab, though the repositories are private.

The macros themselves are just in a python file installed into PYTHONPATH & tested with pytest - Jinja2 — Cylc 8.1.0 documentation

1 Like