@@ -71,11 +71,13 @@ Glossary
71
71
active
72
72
active task
73
73
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.
75
76
76
77
Active tasks are:
77
78
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.
79
81
- ``waiting `` tasks, that are actively waiting on:
80
82
81
83
- :term: `xtriggers <xtrigger> `.
@@ -84,9 +86,9 @@ Glossary
84
86
85
87
- ``preparing `` tasks - i.e. tasks in the process of submitting jobs
86
88
- ``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).
90
92
91
93
Active tasks are in the ``n=0 `` :term: `window <n-window> ` which means they
92
94
will always be displayed in the GUI and Tui.
@@ -96,18 +98,19 @@ Glossary
96
98
97
99
98
100
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> `.
100
102
101
103
Active cycles are counted towards the :term: `runahead limit `.
102
104
103
105
104
106
window
105
107
n-window
106
108
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.
111
114
112
115
.. seealso ::
113
116
@@ -210,8 +213,8 @@ Glossary
210
213
queue
211
214
internal queue
212
215
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.
215
218
216
219
Use queues prevent large or busy workflows from swamping their
217
220
:term: `job platforms <job platform> ` with too many jobs at once.
@@ -559,6 +562,23 @@ Glossary
559
562
* :term: `exact datetime unit `
560
563
561
564
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
+
562
582
clock trigger
563
583
Clock triggers connect cycle points to the :term: `wallclock time `, in
564
584
:term: `datetime cycling ` workflows. Tasks that depend on a clock trigger
@@ -839,8 +859,8 @@ Glossary
839
859
840
860
841
861
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
844
864
<job script> ` prepared by the :term: `scheduler `.
845
865
846
866
@@ -1195,8 +1215,9 @@ Glossary
1195
1215
1196
1216
:ref: `RemoteInit ` will be redone for each job platform, when the first job is submitted there after a reload.
1197
1217
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)
1200
1221
will adopt the new configuration.
1201
1222
1202
1223
Reloading changes is safe providing they don't affect the
@@ -1346,20 +1367,28 @@ Glossary
1346
1367
* :ref: `Cylc User Guide <FamilyTriggers >`
1347
1368
1348
1369
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
+
1349
1376
standard output
1350
1377
Every :term: `task ` has a set of standard :term: `outputs <task output> `
1351
1378
that trigger :term: `task state ` changes:
1352
1379
1380
+ - ``:expired` ``
1353
1381
- ``:submitted ``, or ``:submit-failed ``
1354
1382
- ``:started ``
1355
1383
- ``:succeeded ``, or ``:failed ``
1356
1384
1357
1385
1386
+ output
1358
1387
task output
1359
1388
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 `.
1363
1392
1364
1393
Outputs are written as ``task-name:output `` in the :term: `graph `, and can
1365
1394
be :term: `required <required output> ` or :term: `optional <optional output> `.
@@ -1381,6 +1410,31 @@ Glossary
1381
1410
foo => bar # means foo:succeeded => bar
1382
1411
1383
1412
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
1384
1438
dependence
1385
1439
dependency
1386
1440
Dependencies in the :term: `graph ` show how :term: `tasks <task> ` depend on
@@ -1399,6 +1453,8 @@ Glossary
1399
1453
* :term: `conditional dependence `
1400
1454
* :term: `intercycle dependence `
1401
1455
1456
+ Tasks can also depend on :term: `external triggers <xtrigger> `.
1457
+
1402
1458
1403
1459
conditional dependence
1404
1460
conditional dependency
@@ -1510,36 +1566,24 @@ Glossary
1510
1566
required output
1511
1567
expected output
1512
1568
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.
1516
1573
1517
1574
.. seealso ::
1518
1575
1519
1576
* :ref: `Cylc User Guide <required outputs >`
1520
1577
1521
1578
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
-
1536
1579
stall
1537
1580
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.
1543
1587
1544
1588
Stalls are usually caused by unexpected task failures:
1545
1589
@@ -1556,16 +1600,16 @@ Glossary
1556
1600
run, but ``bar:fail `` was not marked as an :term: `optional output `.
1557
1601
1558
1602
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.
1560
1604
1561
1605
1562
1606
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.
1565
1609
1566
1610
They are denoted by exclamation marks, and are triggered like normal
1567
1611
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:
1569
1613
1570
1614
.. code-block :: cylc-graph
1571
1615
@@ -1649,15 +1693,15 @@ Glossary
1649
1693
1650
1694
1651
1695
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.
1655
1699
1656
1700
1657
1701
flow merge
1658
1702
When a :term: `flow ` tries to spawn a child task and finds an instance
1659
1703
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.
1661
1705
1662
1706
1663
1707
event
@@ -1695,7 +1739,7 @@ Glossary
1695
1739
runahead limit
1696
1740
runahead
1697
1741
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
1699
1743
to run.
1700
1744
1701
1745
The "oldest active cycle point" is the first cycle in the workflow to contain
@@ -1709,12 +1753,17 @@ Glossary
1709
1753
1710
1754
1711
1755
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 `).
1715
1763
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.
1718
1769
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