@@ -70,7 +70,6 @@ Glossary
70
70
71
71
active
72
72
active task
73
- active tasks
74
73
An active task is a task which is near ready to run, in the process of
75
74
running, or which requires user intervention. These are all the tasks
76
75
being actively managed by the scheduler at this point in the run.
@@ -98,22 +97,19 @@ Glossary
98
97
99
98
100
99
active cycle
101
- active cycle point
102
- A cycle is active if it contains any :term: `active tasks <active task> `.
100
+ A cycle point is active if it contains any :term: `active tasks <active task> `.
103
101
104
102
Active cycles are counted towards the :term: `runahead limit `.
105
103
106
104
107
- active window
108
- The active window is the ``n=0 `` core of the :term: `n-window `.
109
- It contains the current :term: `active tasks `.
110
-
111
-
112
105
window
113
106
n-window
114
- This is a :term: `graph `-based window or view of the workflow at runtime,
115
- including tasks out to ``n `` graph edges from current
116
- :term: `active tasks<active task> `. The active tasks are in ``n=0 ``.
107
+ active window
108
+ The UI provides a :term: `graph `-based window or view of the workflow at
109
+ runtime, including tasks out to ``n `` graph edges from current
110
+ :term: `active tasks <active task> `.
111
+
112
+ Active tasks form the ``n=0 `` core of the :term: `n-window `.
117
113
118
114
.. seealso ::
119
115
@@ -572,7 +568,7 @@ Glossary
572
568
573
569
Expired is a :term: `final status ` - an expired task will not run
574
570
even if its prerequisites get satisfied.
575
-
571
+
576
572
The associated ``:expire `` :term: `output <task output> ` can be used to
577
573
trigger other tasks. It must be marked as an :term: `optional output `,
578
574
i.e. expiry cannot be :term: `required <required output> `.
@@ -1386,10 +1382,23 @@ Glossary
1386
1382
- ``:succeeded ``, or ``:failed ``
1387
1383
1388
1384
1385
+ prerequisite
1386
+ task prerequisite
1387
+ A task's prerequisites are the :term: `outputs <task outputs> ` of
1388
+ parent tasks upstream in the graph that must be completed before
1389
+ it can run. Tasks are said to "depend on" their prerequisites, hence
1390
+ the term :term: `dependency graph <graph> `.
1391
+
1392
+ Tasks can depend on :term: `external triggers <xtrigger> ` as well as
1393
+ the outputs of other, upstream, tasks.
1394
+
1395
+
1396
+ output
1389
1397
task output
1390
1398
Task outputs mark the progression of a :term: `task ` from waiting (for
1391
- prerequisites to be satisfied) through to success or failure at run
1392
- time. Tasks can trigger off upstream task outputs in the :term: `graph `.
1399
+ :term: `prerequisites <prerequisite> ` to be satisfied) through to success
1400
+ or failure at run time. Tasks can trigger off of upstream task outputs in
1401
+ the :term: `graph `.
1393
1402
1394
1403
Outputs are written as ``task-name:output `` in the :term: `graph `, and can
1395
1404
be :term: `required <required output> ` or :term: `optional <optional output> `.
@@ -1411,8 +1420,6 @@ Glossary
1411
1420
foo => bar # means foo:succeeded => bar
1412
1421
1413
1422
1414
- complete
1415
- incomplete
1416
1423
output completion
1417
1424
output completion condition
1418
1425
A task's outputs are *complete * if its *output completion condition *
@@ -1428,14 +1435,12 @@ Glossary
1428
1435
submit-fails.
1429
1436
- Or, if expiry is optional, then the outputs are complete if it expires.
1430
1437
1431
- Tasks that achieve a :term: `final status ` with
1432
- :term: `complete outputs <output completion> ` have done their job in the
1433
- workflow, allowing the workflow to move on.
1434
-
1435
- Tasks that achieve a final status with
1436
- :term: `incomplete outputs <output completion> `
1437
- are retained in :term: `n=0 <n-window> ` pending user
1438
- intervention, and will :term: `stall ` the workflow.
1438
+ Tasks that achieve a :term: `final status ` with complete outputs have done
1439
+ their job, allowing the workflow to move on.
1440
+
1441
+ Tasks that achieve a final status with incomplete outputs are retained in
1442
+ :term: `n=0 <n-window> ` pending user intervention, and will :term: `stall `
1443
+ the workflow.
1439
1444
1440
1445
1441
1446
dependence
@@ -1579,15 +1584,14 @@ Glossary
1579
1584
1580
1585
stall
1581
1586
stalled workflow
1582
- stalled state
1583
- In a stalled workflow, there is nothing more the scheduler can do,
1584
- but it stays up for a while awaiting manual intervention because
1585
- the presence of :term: `incomplete <output completion> ` tasks, or
1586
- partially satisfied tasks, in the :term: `n=0 window <n-window> `
1587
- implies that the workflow has not successfully
1588
- run to :term: `completion <workflow completion> `.
1587
+ A stalled workflow has not run to :term: `completion <workflow completion> `
1588
+ but cannot continue without manual intervention.
1589
1589
1590
- Stalls are usually, but not always, caused by unexpected task failures:
1590
+ A stalled scheduler stays alive for a configurable timeout period
1591
+ pending manual intervention. If it shuts down (on the stall timeout
1592
+ or otherwise) it will remain in the stalled state on restart.
1593
+
1594
+ Stalls are usually caused by unexpected task failures:
1591
1595
1592
1596
.. digraph :: Example
1593
1597
:align: center
@@ -1607,7 +1611,7 @@ Glossary
1607
1611
1608
1612
suicide trigger
1609
1613
Suicide triggers remove :term: `tasks <task> ` from the
1610
- :term: `n=0 window <n-window> ` at runtime.
1614
+ :term: `active window <n-window> ` at runtime.
1611
1615
1612
1616
They are denoted by exclamation marks, and are triggered like normal
1613
1617
dependencies. For instance, the following suicide trigger will remove the
@@ -1695,7 +1699,7 @@ Glossary
1695
1699
1696
1700
1697
1701
flow front
1698
- :term: `Active tasks <active tasks > `, i.e. tasks in the
1702
+ :term: `Active tasks <active task > `, i.e. tasks in the
1699
1703
:term: `n=0 window <n-window> `, with a common :term: `flow number `
1700
1704
comprise the active front of the flow.
1701
1705
@@ -1741,11 +1745,11 @@ Glossary
1741
1745
runahead limit
1742
1746
runahead
1743
1747
In a :term: `cycling workflow `, the runahead limit determines how far
1744
- ahead of the oldest :term: `active cycle point ` the workflow is permitted
1748
+ ahead of the oldest :term: `active cycle ` the workflow is permitted
1745
1749
to run.
1746
1750
1747
1751
The "oldest active cycle point" is the first cycle in the workflow to contain
1748
- any :term: `active tasks ` (e.g. running tasks).
1752
+ any :term: `active tasks <active task> ` (e.g. running tasks).
1749
1753
1750
1754
.. seealso ::
1751
1755
@@ -1755,12 +1759,16 @@ Glossary
1755
1759
1756
1760
1757
1761
workflow completion
1758
- A workflow is complete if there are no more tasks to run according
1759
- to the graph, and there are no :term: `incomplete <output completion> `
1760
- tasks present in the :term: `n=0 window <n-window> `.
1761
-
1762
- If the workflow is complete, the scheduler will automatically
1763
- :term: `shut down <shutdown> `.
1764
-
1765
- If there are no more tasks to run, but there are incomplete tasks
1766
- present, the scheduler will :term: `stall ` rather than shut down.
1762
+ A workflow is complete, and the scheduler will automatically
1763
+ :term: `shut down <shutdown> `, if no tasks remain in the
1764
+ :term: `n=0 <n-window> `.
1765
+
1766
+ That is, all active tasks have finished, and no tasks remain waiting on
1767
+ :term: `prerequisites <prerequisite> ` or "external" constraints (such as
1768
+ :term: `xtriggers <xtrigger> ` or task :term: `hold `).
1769
+
1770
+ If no active tasks remain and all external constraints are satisfied,
1771
+ but the n=0 window contains tasks waiting with partially satisfied
1772
+ :term: `prerequisites `, or tasks with :term: `final status ` and
1773
+ :term: `incomplete outputs <output completion> `, then the workflow is
1774
+ not complete and the scheduler will :term: `stall ` pending manual intervention.
0 commit comments