-Summary Of Major Changes
-
-Terminology
-Cylc now uses more widely understood terms for several core concepts.
-
-
-Cylc 7 Term |
-Cylc 8 Term |
-
-
-
-suite |
-workflow |
-
-batch system |
-job runner |
-
-suite daemon |
-scheduler |
-
-suite.rc
|
-flow.cylc
|
-
-
-
-Note the configuration filename is now flow.cylc
, not suite.rc
.
-
-
-Cylc 7 Compatibility Mode
-Continuing to use the old suite.rc
filename triggers a backward
-compatibility mode in Cylc 8 which supports Cylc 7
-workflow configurations out of the box, with
-some caveats. However, to future-proof
-your workflow and take full advantage of Cylc 8 you should upgrade to Cylc 8 syntax.
-
-
-Upgrading To Cylc 8
-
-There have been some configuration changes at Cylc 8.
-To upgrade your Cylc 7 suite to a Cylc 8 workflow, first make sure it validates
-in Cylc 7 without any warnings, then rename the workflow configuration file
-from suite.rc
to flow.cylc
, then run cylc validate
in Cylc 8 and
-take action on any warnings.
-
-
Note
-
Validation warnings use a shorthand notation
-to refer to nested configuration settings on a single line, like this:
-[section][sub-section]item
.
-
-
-
-New Web and Terminal UIs
-
-At Cylc 8, there are two UIs available to monitor and control your workflows:
-
-
-
-Command Changes
-cylc run <suite_name>
at Cylc 7 has become cylc play <workflow_id>
.
-
-At Cylc 8, use cylc pause <workflow_id>
to pause a workflow, halting all job
-submission. To restart the workflow, use cylc play <workflow_id>
.
-To start a fresh run, use cylc install
and play it safely in the new run
-directory.
-(Note that cylc hold
and cylc release
pause and release individual tasks.)
-
-
-Task/Job States
-Tasks are nodes in the abstract workflow graph, representing
-applications to run at the appropriate point in the workflow. A job
-is the script (and subsequent process) submitted by Cylc to
-actually run the application. A task can have multiple jobs as the result of
-automatic retries or manual re-triggering.
-The 13 task/job states in Cylc 7 have been simplified to 8. Tasks and jobs have been
-separated and states of both can be viewed in the GUI.
-
-For more information, see Task/Job States.
-
-
-Optional and Required Task Outputs
-
-By default, all Cylc 8 tasks are required to succeed - i.e., success is
-a required output. Otherwise they will be marked
-as incomplete tasks needing user intervention.
-In a workflow with incomplete tasks, if there is nothing left to do, the
-scheduler will stall rather than shut down.
-Alternatively, task outputs can be marked as optional.
-This supports graph branching and it allows the scheduler to
-correctly diagnose workflow completion.
-
-
-
-Workflow Installation
-Cylc 8 supports workflow installation.
-For users of Rose, this replaces the functionality of rose suite-run
.
-
-Cylc Install
-
-Cylc install cleanly separates workflow source directory from
-run directory. It installs workflow files ready for cylc play
.
-$ pwd
-~/cylc-src/demo
-
-$ ls
-flow.cylc
-
-$ cylc install
-INSTALLED demo/run1 from /home/oliverh/cylc-src/demo
-
-$ cylc play demo
-...
-demo/run1: oliver.niwa.local PID=6702
-
-
-By default, run numbers increment with each install.
-
-
-File Installation
-When the first job runs on a remote platform (after start-up, or after a cylc reload
), a
-remote initialization process is triggered to install workflow files there.
-
-
-Symlink Dirs
-
-Symlinking the workflow directories used by Cylc provides a useful way of
-managing disk space.
-These symlinks are created on a per install target basis, as configured in
-global.cylc[install][symlink dirs]
. Install targets are managed on
-a site level, for more information see What Are Install Targets?
-This functionality replaces the Rose root dir
configuration
-for Cylc 7 (however, note it does not allow per-workflow configuration).
-
-
-
-Removing Workflows
-Workflows can be deleted with cylc clean
- see Removing Workflows. This
-replaces the rose suite-clean
functionality.
-
-
-Architecture
-There have been fundamental changes to the architecture of Cylc. You can read
-about the new system design here Architecture.
-
-
-Scheduling Algorithm
-The scheduling algorithm has been changed, more information is available:
-Scheduling Algorithm.
-
-
-Other Changes
-There are an assortment of other features implemented at Cylc 8. Some noteworthy
-minor changes include:
-
-- Runahead Limit
The default runahead limit has been increased from three cycles to five.
-
-- Queues
Internal Queues are now more efficient (for the scheduler),
-we now recommend using queues to restrict the number of running tasks in
-situations where graphing may have been used previously.
-
-- Time Zones
[scheduler]cycle point time zone
now defaults to UTC, unless you
-are working in Cylc 7 Compatibility Mode.
-
-- Job Scripts
All user-defined task scripting now runs in a subshell, so you can safely
-switch Python environments inside tasks without affecting Cylc.
-Further information is available in the User Guide: Job Scripts.
-
-- Packaging
Cylc 8 (and its package dependencies) is now available from Conda Forge and PyPI
-for installations into a Python 3 virtual environment.
-
-- Remote usernames
If usernames differ on remote job hosts they must now be configured using
-an SSH config file rather than the via Cylc 7 [remote]owner
configuration.
-See Remote Usernames.
-
-
-
-