Summary¶
Suite Structure¶
So far we have covered:
- Cylc suites.
- Rose suite configurations.
- Rosie suites.
The relationship between them is as follows:
Cylc suites can have Rose applications. These are stored in an app
directory and are configured using a rose-app.conf
file.
Suite Commands¶
We have learned the following Cylc commands:
cylc graph
- Draws the suite’s graph.
cylc get-config
- Processes the
suite.rc
file and prints it back out. cylc validate
- Validates the Cylc
suite.rc
file to check for any obvious errors. cylc run
- Runs a suite.
cylc stop
Stops a suite, in a way that:
--kill
- Kills all running/submitted tasks.
--now --now
- Leaves all running/submitted tasks running.
cylc restart
- Starts a suite, picking up where it left off from the previous run.
We have learned the following Rose commands:
- rose app-run
- Runs a Rose application.
- rose task-run
- Runs a Rose application from within a Cylc suite.
- rose suite-run
- Runs a Rose suite.
- rose suite-restart
- Runs a Rose suite, picking up where it left off from the previous run.
The Cylc commands do not know about the rose-suite.conf
file
so for Rose suite configurations you will have to install the suite before
using commands such as cylc graph
, e.g:
# install the suite on the local host only - don't run it.
rose suite-run --local-install-only
# run cylc graph using the installed version of the suite.
cylc graph <name>
Rose Utilities¶
Rose contains some utilities to make life easier:
- rose date
A utility for parsing, manipulating and formatting date-times which is useful for working with the Cylc cycle point:
$ rose date 2000 --offset '+P1Y1M1D' 2001-02-02T0000Z $ rose date $CYLC_TASK_CYCLE_POINT --format 'The month is %B.' The month is April.
See the date-time tutorial for more information.
- rose host-select
A utility for selecting a host from a group with the ability to rank choices based on server load or free memory.
Groups are configured using the
rose.conf[rose-host-select]group{NAME}
setting. For example to define a cluster called “mycluster” containing the hosts “computer1”, “computer2” and “computer3”, you would write:[rose-host-select] group{mycluster}=computer1 computer2 computer3
Hosts can then be selected from the cluster on the command line:
$ rose host-select mycluster computer2
The rose host-select command can by used within Cylc suites to determine which host a task runs on:
[runtime] [[foo]] script = echo "Hello $(hostname)!" [[[remote]]] host = rose host-select mycluster
Rose Built-In Applications¶
Along with Rose utilities there are also Rose built-in applications.
fcm_make
- A template for running the
fcm make
command. rose_ana
- Runs the rose-ana analysis engine.
rose_arch
- Provides a generic solution to configure site-specific archiving of suite files.
rose_bunch
- For the running of multiple command variants in parallel under a single job.
rose_prune
- A framework for housekeeping a cycling suite.
Next Steps¶
- Further Topics
- Tutorials going over some of the more specific aspects of Rose not covered in the main tutorial.
- Cheat Sheet
- A quick breakdown of the commands for running and interacting with suites using Cylc and Rose.
- Command Reference
- Contains the command-line documentation
(also obtainable by calling
rose --help
). - Rose Configuration
- The possible settings which can be used in the different Rose configuration files.
- Cylc Suite Design Guide
- Contains recommended best practice for the style and structure of Cylc suites.