Skip to content

Commit cde851e

Browse files
authored
Merge pull request #727 from hjoliver/terminology-tweaks
Some doc updates for 8.3.0.dev changes.
2 parents 5955662 + 1d547ba commit cde851e

File tree

11 files changed

+222
-176
lines changed

11 files changed

+222
-176
lines changed

src/7-to-8/major-changes/compatibility-mode.rst

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,10 @@ The ``suite.rc`` filename triggers a backward compatibility mode in which:
3333
- (Cylc 8 spawns tasks on demand, and suicide triggers are not needed for
3434
branching)
3535

36-
- only ``succeeded`` task outputs are :ref:`*required* <User Guide Required Outputs>`,
37-
meaning the scheduler will retain tasks that do not succeed as incomplete
36+
- ``succeeded`` task outputs are :ref:`required <User Guide Required Outputs>`,
37+
so in the absence of suicide triggers the scheduler will retain other
38+
:term:`final status` tasks in the :term:`n=0 window <n-window>` to stall the
39+
workflow.
3840

3941
- (in Cylc 8, **all** outputs are *required* unless marked as
4042
:ref:`*optional* <User Guide Optional Outputs>` by the new ``?`` syntax)

src/7-to-8/summary.rst

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -121,14 +121,15 @@ Optional and Required Task Outputs
121121
* User Guide::ref:`User Guide Optional Outputs`
122122

123123
By default, all Cylc 8 tasks are required to succeed - i.e., success is
124-
a :term:`required output`. Otherwise they will be marked
125-
as :term:`incomplete tasks<incomplete task>` needing user intervention.
126-
In a workflow with incomplete tasks, if there is nothing left to do, the
127-
scheduler will :term:`stall` rather than shut down.
128-
129-
Alternatively, task outputs can be marked as :term:`optional <optional output>`.
130-
This supports :term:`graph branching` and it allows the scheduler to
131-
correctly diagnose :term:`workflow completion`.
124+
a :term:`required output`. Tasks with :term:`final status` and incomplete
125+
outputs get retained in the :term:`n=0 window <n-window>` pending user
126+
intervention, which will :term:`stall` the workflow.
127+
128+
Alternatively, outputs can be marked as :term:`optional <optional output>`,
129+
which allows :term:`optional graph branching <graph branching>`.
130+
131+
This allows the scheduler to correctly diagnose :term:`workflow completion`.
132+
132133

133134
Platform Awareness
134135
------------------

src/glossary.rst

Lines changed: 106 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,13 @@ Glossary
7171
active
7272
active task
7373
An active task is a task which is near ready to run, in the process of
74-
running, or which requires user intervention.
74+
running, or which requires user intervention. These are all the tasks
75+
being actively managed by the scheduler at this point in the run.
7576

7677
Active tasks are:
7778

78-
- Tasks which have some, but not all of their prerequisites satisfied.
79+
- Tasks which have some, but not all of their
80+
:term:`prerequisites <prerequisite>` satisfied.
7981
- ``waiting`` tasks, that are actively waiting on:
8082

8183
- :term:`xtriggers <xtrigger>`.
@@ -84,9 +86,9 @@ Glossary
8486

8587
- ``preparing`` tasks - i.e. tasks in the process of submitting jobs
8688
- ``submitted`` and ``running`` tasks - i.e. those with active jobs
87-
- :term: `incomplete` tasks which have completed without satisfying all of their
88-
:term:`required outputs <required output>`, (e.g. a failed task
89-
where success was required).
89+
- tasks that reached a :term:`final status` without completing their
90+
:term:`required outputs <required output>`
91+
(e.g. a task failed where success was required).
9092

9193
Active tasks are in the ``n=0`` :term:`window <n-window>` which means they
9294
will always be displayed in the GUI and Tui.
@@ -96,18 +98,19 @@ Glossary
9698

9799

98100
active cycle
99-
A cycle is active if it contains any :term:`active tasks <active task>`.
101+
A cycle point is active if it contains any :term:`active tasks <active task>`.
100102

101103
Active cycles are counted towards the :term:`runahead limit`.
102104

103105

104106
window
105107
n-window
106108
active window
107-
active task pool
108-
This is a :term:`graph`-based window or view of the workflow at runtime,
109-
including tasks out to ``n`` graph edges from current :term:`active
110-
tasks<active task>`. The *active window* is ``n=0``.
109+
The GUI provides a :term:`graph`-based window or view of the workflow at
110+
runtime, including tasks out to ``n`` graph edges from current
111+
:term:`active tasks <active task>`.
112+
113+
Active tasks form the ``n=0`` window.
111114

112115
.. seealso::
113116

@@ -210,8 +213,8 @@ Glossary
210213
queue
211214
internal queue
212215
Internal queues (so called to distinguish them from external batch
213-
queueing systems) allow you to limit how many :term:`tasks <task>` can be
214-
active (submitted or running) at once, across defined groups of tasks.
216+
queueing systems) limit how many :term:`jobs <job>` can be
217+
active at once, across defined groups of tasks.
215218

216219
Use queues prevent large or busy workflows from swamping their
217220
:term:`job platforms <job platform>` with too many jobs at once.
@@ -559,6 +562,23 @@ Glossary
559562
* :term:`exact datetime unit`
560563

561564

565+
clock expire
566+
expired task
567+
Tasks in :term:`datetime cycling` workflows can be configured to *expire*
568+
if the :term:`wallclock time` exceeds some offset from the cycle point.
569+
570+
Expired is a :term:`final status` - an expired task will not run
571+
even if its :term:`prerequisites <prerequisite>` get satisfied.
572+
573+
The associated ``:expire`` :term:`output <task output>` can be used to
574+
trigger other tasks. It must be marked as an :term:`optional output`,
575+
i.e. expiry cannot be :term:`required <required output>`.
576+
577+
.. seealso::
578+
579+
* :ref:`Cylc User Guide <ClockExpireTasks>`
580+
581+
562582
clock trigger
563583
Clock triggers connect cycle points to the :term:`wallclock time`, in
564584
:term:`datetime cycling` workflows. Tasks that depend on a clock trigger
@@ -839,8 +859,8 @@ Glossary
839859

840860

841861
job
842-
Jobs are real processes that perform :term:`tasks <task>` in a
843-
:term:`workflow`. In Cylc, they are implemented by :term:`job scripts
862+
Jobs are the real processes that :term:`tasks <task>` represent in
863+
a :term:`workflow`. In Cylc, they are implemented by :term:`job scripts
844864
<job script>` prepared by the :term:`scheduler`.
845865

846866

@@ -1195,8 +1215,9 @@ Glossary
11951215

11961216
:ref:`RemoteInit` will be redone for each job platform, when the first job is submitted there after a reload.
11971217

1198-
Any :term:`task` that is active at reload will continue with its
1199-
pre-reload configuration. It's next instance (at the next cycle point)
1218+
Any :term:`task` that is :term:`active <active task>` at reload
1219+
will continue with its pre-reload configuration.
1220+
The next instance of the task (at the next cycle point)
12001221
will adopt the new configuration.
12011222

12021223
Reloading changes is safe providing they don't affect the
@@ -1346,20 +1367,28 @@ Glossary
13461367
* :ref:`Cylc User Guide <FamilyTriggers>`
13471368

13481369

1370+
final status
1371+
A task that has achieved a final status (expired, submit-failed,
1372+
succeeded, or failed) will not change state in the workflow, except by
1373+
manual intervention.
1374+
1375+
13491376
standard output
13501377
Every :term:`task` has a set of standard :term:`outputs <task output>`
13511378
that trigger :term:`task state` changes:
13521379

1380+
- ``:expired```
13531381
- ``:submitted``, or ``:submit-failed``
13541382
- ``:started``
13551383
- ``:succeeded``, or ``:failed``
13561384

13571385

1386+
output
13581387
task output
13591388
Task outputs mark the progression of a :term:`task` from waiting (for
1360-
prerequisites to be satisfied) through to success or failure at run
1361-
time. Downstream tasks can trigger off of the outputs of other tasks, as
1362-
determined by the :term:`graph`.
1389+
:term:`prerequisites <prerequisite>` to be satisfied) through to success
1390+
or failure at run time. Tasks can trigger off of upstream task outputs in
1391+
the :term:`graph`.
13631392

13641393
Outputs are written as ``task-name:output`` in the :term:`graph`, and can
13651394
be :term:`required <required output>` or :term:`optional <optional output>`.
@@ -1381,6 +1410,31 @@ Glossary
13811410
foo => bar # means foo:succeeded => bar
13821411
13831412
1413+
output completion
1414+
output completion condition
1415+
A task's outputs are *complete* if its *output completion condition*
1416+
is satisfied.
1417+
1418+
The completion condition can be defined by the user in
1419+
:cylc:conf:`flow.cylc[runtime][<namespace>]completion`,
1420+
otherwise it is automatically generated according to the rules:
1421+
1422+
- All :term:`required outputs <required output>` (referenced in the graph)
1423+
must be completed.
1424+
- Or, if success is optional, then the outputs are complete if it fails.
1425+
- Or, if submission is optional, then the outputs are complete if it
1426+
submit-fails.
1427+
- Or, if expiry is optional, then the outputs are complete if it expires.
1428+
1429+
Tasks that achieve a :term:`final status` with complete outputs have done
1430+
their job, allowing the workflow to move on.
1431+
1432+
Tasks that achieve a final status with incomplete outputs are retained in
1433+
:term:`n=0 <n-window>` pending user intervention, and will :term:`stall`
1434+
the workflow.
1435+
1436+
1437+
prerequisite
13841438
dependence
13851439
dependency
13861440
Dependencies in the :term:`graph` show how :term:`tasks <task>` depend on
@@ -1399,6 +1453,8 @@ Glossary
13991453
* :term:`conditional dependence`
14001454
* :term:`intercycle dependence`
14011455

1456+
Tasks can also depend on :term:`external triggers <xtrigger>`.
1457+
14021458

14031459
conditional dependence
14041460
conditional dependency
@@ -1510,36 +1566,24 @@ Glossary
15101566
required output
15111567
expected output
15121568
Task outputs that are not marked as :term:`optional <optional output>`
1513-
in the :term:`graph` are required to be completed at runtime. If not, the
1514-
:term:`scheduler` retains the task as :term:`incomplete` pending user
1515-
intervention.
1569+
in the :term:`graph` must be completed at runtime. If a task
1570+
achieves a :term:`final status` without completing its required
1571+
outputs, the :term:`scheduler` will keep it in the
1572+
:term:`n=0 window <n-window>` pending user intervention.
15161573

15171574
.. seealso::
15181575

15191576
* :ref:`Cylc User Guide <required outputs>`
15201577

15211578

1522-
incomplete
1523-
incomplete task
1524-
Incomplete tasks are :term:`tasks <task>` that finish (succeed or fail)
1525-
without completing all :term:`required outputs <required output>`. They
1526-
are retained by the :term:`scheduler` in the :term:`n=0 window
1527-
<n-window>` pending user intervention, and will cause a :term:`stall`
1528-
if there are no more tasks to run.
1529-
1530-
.. seealso::
1531-
1532-
* :term:`optional output`
1533-
* :ref:`Cylc User Guide <incomplete tasks>`
1534-
1535-
15361579
stall
15371580
stalled workflow
1538-
stalled state
1539-
If there are no more tasks to run according to the :term:`graph`, but
1540-
:term:`incomplete tasks <incomplete task>` are present, the
1541-
:term:`scheduler` will stall and stay up for a time instead of
1542-
shutting down with the workflow :term:`complete <workflow completion>`.
1581+
A stalled workflow has not run to :term:`completion <workflow completion>`
1582+
but cannot continue without manual intervention.
1583+
1584+
A stalled scheduler stays alive for a configurable timeout period
1585+
pending manual intervention. If it shuts down (on the stall timeout
1586+
or otherwise) it will remain in the stalled state on restart.
15431587

15441588
Stalls are usually caused by unexpected task failures:
15451589

@@ -1556,16 +1600,16 @@ Glossary
15561600
run, but ``bar:fail`` was not marked as an :term:`optional output`.
15571601

15581602
User intervention is required to fix a stall, e.g. by retriggering
1559-
incomplete tasks after fixing the problems that caused them to fail.
1603+
tasks after fixing the problems that caused them to fail.
15601604

15611605

15621606
suicide trigger
1563-
Suicide triggers remove :term:`tasks <task>` from the :term:`scheduler's
1564-
<scheduler>` active (:term:`n=0 <n-window>`) window at runtime.
1607+
Suicide triggers remove :term:`tasks <task>` from the
1608+
:term:`active window <n-window>` at runtime.
15651609

15661610
They are denoted by exclamation marks, and are triggered like normal
15671611
dependencies. For instance, the following suicide trigger will remove the
1568-
task ``bar`` from the active window if ``foo`` succeeds:
1612+
task ``bar`` if ``foo`` succeeds:
15691613

15701614
.. code-block:: cylc-graph
15711615
@@ -1649,15 +1693,15 @@ Glossary
16491693

16501694

16511695
flow front
1652-
Active (submitted or running) tasks, i.e. tasks in the ``n=0``
1653-
:term:`active window`, with a common :term:`flow number` comprise the
1654-
active front of that flow.
1696+
:term:`Active tasks <active task>`, i.e. tasks in the
1697+
:term:`n=0 window <n-window>`, with a common :term:`flow number`
1698+
comprise the active front of the flow.
16551699

16561700

16571701
flow merge
16581702
When a :term:`flow` tries to spawn a child task and finds an instance
16591703
with the same task ID already exists in the ``n=0`` :term:`active
1660-
window`, the one active task will carry both flow numbers forward.
1704+
window`, one merged task will carry both flow numbers forward.
16611705

16621706

16631707
event
@@ -1695,7 +1739,7 @@ Glossary
16951739
runahead limit
16961740
runahead
16971741
In a :term:`cycling workflow`, the runahead limit determines how far
1698-
ahead of the oldest :ref:`active cycle point` the workflow is permitted
1742+
ahead of the oldest :term:`active cycle` the workflow is permitted
16991743
to run.
17001744

17011745
The "oldest active cycle point" is the first cycle in the workflow to contain
@@ -1709,12 +1753,17 @@ Glossary
17091753

17101754

17111755
workflow completion
1712-
A workflow is deemed complete if there are no more tasks to run,
1713-
according to the graph, and there are no :term:`incomplete task
1714-
<incomplete task>` present.
1756+
A workflow is complete, and the scheduler will automatically
1757+
:term:`shut down <shutdown>`, if no tasks remain in the
1758+
:term:`n=0 <n-window>`.
1759+
1760+
That is, all active tasks have finished, and no tasks remain waiting on
1761+
:term:`prerequisites <prerequisite>` or "external" constraints (such as
1762+
:term:`xtriggers <xtrigger>` or task :term:`hold`).
17151763

1716-
If the workflow is complete, the scheduler will automatically :term:`shut
1717-
down <shutdown>`.
1764+
If no active tasks remain and all external constraints are satisfied,
1765+
but the n=0 window contains tasks waiting with partially satisfied
1766+
:term:`prerequisites <prerequisite>`, or tasks with :term:`final status` and
1767+
:term:`incomplete outputs <output completion>`, then the workflow is
1768+
not complete and the scheduler will :term:`stall` pending manual intervention.
17181769

1719-
If there are no more tasks to run, but there are incomplete tasks
1720-
present, the scheduler will :term:`stall` rather than shut down.

0 commit comments

Comments
 (0)