If you have access to cylc already, type
cylc doc or use the GUI “Help” menu
to view the User Guide. Otherwise, an online copy is available here:
Warning: the auto-generated HTML version of the user guide is quite ugly and has some formatting issues; we plan to reformulate the Cylc documentation using Sphinx in due course, which will fix this problem.
Format HTML5 with embedded .webm videos (plays natively in Firefox or Chrome). Hit the “Home” and “End” keys to skip to the beginning and end of the presentation, and the ‘o’ key for a multi-slide summary. This is the dzslides framework by Paul Roget.
Cylc Keynote - from the IS-ENES2 Workshop on Workflow in Earth Systems Modeling, Lisbon, September 2016
Cylc High Level Introduction - Bureau of Meteorology, Melbourne, February 2017
Please cite Cylc in your publications if you used it to automate your workflows.
Oliver et al., (2018). Cylc: A Workflow Engine for Cycling Systems. Journal of Open Source Software, 3(27), 737, https://doi.org/10.21105/joss.00737
The Cylc developers would like to respond to a recent comparison paper, Assessment report on Autosubmit, Cylc and ecFlow (2016, Domingo Manubens-Gil et. al.) and another that references it, Seamless Management of Ensemble Climate Prediction Experiments on HPC Platforms (2016, Domingo Manubens-Gil et. al.). Two of us are listed as contributors to the first paper but it should be noted that the contribution was limited by time and workload constraints to major corrections relating to Cylc (all of which were addressed by the lead author).
The lead author of both papers is also the lead developer of Autosubmit. Perhaps inevitably as the developers of Cylc we have a rather different view on the strengths and weaknesses of the different systems. In particular we would like to address the following points.
The following example is intended to convey something of cylc’s basic functionality. However, it barely scratches the surface; to understand more, read the User Guide!
$ mkdir -p ~/suites/test/ $ vim ~/suites/test/suite.rc title = A first Cylc suite. [cylc] cycle point format = %Y [scheduling] initial cycle point = 2021 final cycle point = 2023 [[dependencies]] [[[R1]]] # Initial cycle point. graph = prep => model [[[R//P1Y]]] # Yearly cycling. graph = model[-P1D] => model => post [[[R1/P0Y]]] # Final cycle point. graph = post => stop [runtime] [[root]] # Inherited by all tasks. script = sleep 10 [[model]] script = echo "my FOOD is $FOOD"; sleep 10 [[[environment]]] FOOD = icecream [visualization] default node attributes = "style=filled", "shape=ellipse" [[node attributes]] prep = "fillcolor=#00c798" stop = "fillcolor=#ffcc00" model = "fillcolor=#00b4fd" post = "fillcolor=#ff5966"
$ cylc register my.suite ~/suites/test REGISTER my.suite: /home/bob/suites/test $ cylc print my.suite my.suite | A first test suite | ~/suites/test $ cylc edit my.suite # Open the suite in your editor again. $ cylc help # See other commands!
$ cylc validate my.suite Valid for cylc-6.10.1
$ cylc graph my.suite &
$ cylc run my.suite # OR $ gcylc my.suite & # (and run it from the GUI)
$ cylc log -o my.suite model.2021 Suite : my.suite Task Job : 2021/model/01 (try 1) User@Host: firstname.lastname@example.org my FOOD is icecream 2017-03-20T19:37:49Z NORMAL - started 2017-03-20T19:37:59Z NORMAL - succeeded