Cylc (pronounced silk) is a general purpose workflow engine that also manages cycling systems very efficiently. It is used in production weather, climate, and environmental forecasting on HPC, but is not specialized to those domains.
Quick Start
# install cylc
conda install cylc-flow
# write your first workflow
mkdir -p ~/cylc-src/example
cat > ~/cylc-src/example/flow.cylc <<__CONFIG__
[scheduling]
initial cycle point = 1
cycling mode = integer
[[graph]]
P1 = """
a => b => c & d
b[-P1] => b
"""
[runtime]
[[a, b, c, d]]
script = echo "Hello $CYLC_TASK_NAME"
__CONFIG__
# install and run it
cylc install example
cylc play example
# watch it run
cylc tui example
The Cylc Ecosystem
- cylc-flow - The core Cylc Scheduler for defining and running workflows.
- cylc-uiserver - The web-based Cylc graphical user interface for monitoring and controlling workflows.
- cylc-rose - Provides integration with Rose.
Migrating From Cylc 7
Migration Guide | Migration Support
Cylc 8 can run most Cylc 7 workflows in compatibility mode with little to no changes, go through the migration guide for more details.
Quick summary of major changes:
- Python 2 -> 3.
- Internal communications converted from HTTPS to ZMQ (TCP).
- PyGTK GUIs replaced by:
- Terminal user interface (TUI) included in cylc-flow.
- Web user interface provided by the cylc-uiserver package.
- A new scheduling algorithm with support for branched workflows.
- Command line changes:
cylc run <id>
->cylc play <id>
cylc restart <id>
->cylc play <id>
rose suite-run
->cylc install; cylc play <id>
- The core package containing Cylc scheduler program has been renamed cylc-flow.
- Cylc review has been removed, the Cylc 7 version remains Cylc 8 compatible.
Citations & Publications
Copyright and Terms of Use
Copyright (C) 2008-2023 NIWA & British Crown (Met Office) & Contributors.
Cylc is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Cylc is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Cylc. If not, see GNU licenses.
Contributing
Contributions welcome:
- Read the contributing page.
- Development setup instructions are in the developer docs.
- Involved change proposals can be found in the admin pages.
- Touch base in the developers chat.