Cylc (“silk”) is a workflow engine for cycling systems - it orchestrates distributed suites of interdependent cycling tasks that may continue to run indefinitely.

There are several reasons why tasks might need to be cycled:

  • To run successive cycles of an environmental forecasting system (where in real time operation new forecasts are initiated at regular intervals; but in catch-up or historical mode dependencies may allow concurrent cycles).

  • To split long model runs into a sequence of smaller runs, with associated processing tasks for each chunk.

  • To run successive steps in some multi-task iterative process, such as for optimizing model parameters.

  • To process a series of datasets (potentially concurrently, to the extent possible) as they are generated or received.

Cylc was originally developed for operational environmental forecasting at NIWA by Dr Hilary Oliver. It is now an Open Source collaboration involving NIWA, Met Office, and others. It is available under the GPL v3 license.

Suites are defined in a human-readable config file format - so you can use software development power tools for suite development.

Configure scheduling with an efficient graph description notation, and task runtime properties in an efficient inheritance hierarchy (to factor out all commonality).

Cylc dynamically generates new workflow without being constrained by a global cycle loop. Cycles interleave naturally, suites flow around failed or delayed tasks, and they adapt to insertion and removal of tasks.

Cylc has low admin overhead and a small security footprint, because - as a distributed system - there is no central server process to manage workflows for all users.

Plus many other features to support both clock-triggered real time and free-flow metascheduling in research and operational environments.

Please let us know if your organization should be included in the list of Cylc users.

Here’s the DOI to use when citing Cylc: DOI

See also publications and citations

Download cylc-7.8.0
Released

Clone cylc on GitHub

cylc-7.8.0,

Large minor release, 120+ closed issues. Changes include automatic suite host selection; automatic migration of...

cylc-7.7.2,

A minor maintenance release with 12 fixes and minor enhancements merged since cylc-7.7.1. Changes include...

cylc-7.7.1,

A minor maintenance release containing around 20 fixes merged since cylc-7.7.0. Changes include suppression of...

cylc-7.7.0,

A significant release with 66 new development branches merged. Includes: new "late" task events; FIFO...