Pursuing & supporting
reproducible workflows
for all with
Oliver Sanders & Sadie Bartholomew
Modelling Infrastructure Support
Systems team,
Met Office
This is a simple workflow
This is a repeating workflow
This is a Cylc cycling workflow
This is an infinite cycling workflow
Cylc provides a moving window on an infinite workflow
Workflows with multiple cycle intervals
| Arbitrary (integer) cycling | |
| Real time cycling | |
| Simulated time cycling | |
| Externally driven cycling |
This is a simple workflow definition
This is a Cycling workflow definition
System architecture
Submit jobs with:
| Live monitoring via GUI or CLI | |
| Manual intervention with running workflows supported | |
| Automatically re-submit failed jobs |
Usage & the Cylc Community
International
use []
& development [
]
Example: weather forecasting
research
real-time
cycling
seamless
(meta-scheduling)
transition
simulated
time
cycling
operations
At the
Met Office workflows are often huge!
(by numbers of tasks, dependencies, recurrences...)
Python-powered core scheduling code
Workflow design choices include:
| single monolithic workflow | modularity
|
multiple connected workflows (inter-workflow triggering) |
| coarse | task granularity
|
fine |
| via in-built parameterisation | task generation
|
via templating (Jinja2) |
|
runtime inheritance: |
hierarchy branching, levels & interconnections |
|
The Future of Cylc
Same concept, revised tech stack:
|
Scheduling & runtime |
2
|
⟶ |
3
|
|
Data & network layer |
|
⟶ |
|
|
Web framework |
|
⟶ |
|
|
Front-end |
|
⟶ |
|
|
Documentation |
|
⟶ |
|
Cylc development is supported by: