@@ -6,46 +6,11 @@ Platforms
6
6
.. admonition :: Does This Change Affect Me?
7
7
:class: tip
8
8
9
- .. cylc-scope :: flow.cylc
9
+ Cylc platforms are a new feature which replace the task ``job `` and
10
+ ``remote `` configuration sections:
10
11
11
- Platforms replace the deprecated :cylc:conf: `[runtime][<namespace>][job] `
12
- and :cylc:conf: `[runtime][<namespace>][remote] `
13
- sections:
14
-
15
- .. code-block :: cylc
16
-
17
- [runtime]
18
- [[foo]]
19
- [[[job]]]
20
- batch system = slurm
21
- [[[remote]]]
22
- host = my_supercomputer
23
-
24
- .. cylc-scope ::
25
-
26
- Read this section if your workflow's jobs run on a remote computer or if
27
- you see the following warning on running ``cylc validate ``:
28
-
29
- .. code-block :: console
30
-
31
- WARNING - deprecated settings found (please replace with [runtime][foo]platform):
32
- [runtime][foo][remote]host
33
- [runtime][foo][job]batch system
34
-
35
- If you currently use the ``rose host-select `` utility or a similar host
36
- selection or load balancing utility the intelligent host selection
37
- functionality of Cylc 8 may be used instead:
38
-
39
- .. code-block :: cylc
40
-
41
- [runtime]
42
- [[task1]]
43
- [[[remote]]]
44
- host = $(rose host-select my-computer)
45
- [[task2]]
46
- # An example of a home-rolled host selector
47
- [[[remote]]]
48
- host = $(test $((RANDOM%2)) -eq 0 && echo "host_a" || echo "host_b")
12
+ * :cylc:conf: `[runtime][<namespace>][job] `
13
+ * :cylc:conf: `[runtime][<namespace>][remote] `
49
14
50
15
51
16
Overview
@@ -57,23 +22,18 @@ Overview
57
22
- The terms :term: `job runner ` (in Cylc 8 configurations) and batch system
58
23
(in Cylc 7 configurations) are equivalent.
59
24
60
- Cylc 7 defines settings for remote :term: `jobs <job> ` in each
61
- :term: `task's <task> ` definition.
25
+ Submitting a job to a :term: `job runner ` may require configuration.
62
26
63
- Cylc 8 allows site administrators (and users) to configure
64
- :term: `platforms <platform> ` in ``global.cylc ``. A platform can have
65
- multiple hosts with associated platform-specific settings. Users only need to
66
- select the platform for their task jobs.
27
+ In Cylc 7 this configuration must be provided for each task in the workflow
28
+ configuration (``suite.rc ``).
67
29
68
- Platforms also define how hosts are selected from each platform:
69
-
70
- - Randomly (default)
71
- - By definition order
30
+ In Cylc 8 "platforms" can be defined in the global configuration
31
+ (:cylc:conf: `global.cylc `) so that this configuration doesn't have to be
32
+ repeated for each task in each workflow.
72
33
73
34
There may be cases where sets of platforms (for example a group of
74
35
standalone compute servers, or a pair of mirrored HPC's) might be equally
75
- suitable for a task, but not share files systems to allow them to constitute
76
- a single platform. Such platforms can be set up to be ``platform groups ``
36
+ suitable for a task. Such platforms can be set up to be ``platform groups ``
77
37
78
38
.. seealso ::
79
39
@@ -92,6 +52,20 @@ a single platform. Such platforms can be set up to be ``platform groups``
92
52
Deprecated settings will be removed in a later release of Cylc.
93
53
94
54
55
+ What is a Platform?
56
+ -------------------
57
+
58
+ A "platform" represents one or more hosts from which jobs can be submitted to or
59
+ polled from a common job submission system.
60
+
61
+ If a platform has multiple hosts Cylc will automatically select a host when
62
+ needed and will fallback to other hosts if it is not contactable.
63
+
64
+ A "platform group" represents a collection of independent platforms. Cylc will
65
+ automatically select a platform and will fallback to other platforms in the
66
+ group (for appropriate operations) if the platform is not contactable.
67
+
68
+
95
69
Examples
96
70
--------
97
71
@@ -194,7 +168,7 @@ At Cylc 8 the equivalent might be:
194
168
195
169
[[mytask_login_to_hpc_and_submit]]
196
170
# Recommended:
197
- platform = just_run_it
171
+ platform = slurm_supercomputer
198
172
# ...but This is still legal:
199
173
#platform = $(selector-script)
200
174
@@ -210,13 +184,25 @@ And the platform settings for these examples might be:
210
184
# A computer with PBS, that takes local job submissions
211
185
job runner = pbs
212
186
hosts = localhost
187
+ install target = localhost
213
188
214
189
[[slurm_supercomputer]]
215
190
# This computer with Slurm requires you to use a login node.
216
191
hosts = login_node01, login_node02 # Cylc will pick a host.
217
192
job runner = slurm
218
193
219
194
195
+ Note that in these examples, it is assumed that ``linuxboxNN ``, ``pbs_local `` and
196
+ ``slurm_supercomputer `` have distinct file systems.
197
+ Sets of platforms which share a file system must specify
198
+ a single :ref: `install target <Install Targets >`.
199
+
200
+ .. note ::
201
+ If an install target is not set, a platform will use its own platform name
202
+ as the install target name. If multiple platforms share a file system
203
+ but have separate :ref: `install targets <Install Targets >` task initialization
204
+ will fail.
205
+
220
206
.. _host-to-platform-logic :
221
207
222
208
How Cylc 8 handles host-to-platform upgrades
@@ -243,6 +229,7 @@ platforms section:
243
229
[[supercomputer_A]]
244
230
hosts = localhost
245
231
job runner = slurm
232
+ install target = localhost
246
233
[[supercomputer_B]]
247
234
hosts = tigger, wol, eeyore
248
235
job runner = pbs
@@ -257,7 +244,7 @@ And you have a workflow runtime configuration:
257
244
batch system = slurm
258
245
[[task2]]
259
246
[[[remote]]]
260
- hosts = eeyore
247
+ host = eeyore
261
248
[[[job]]]
262
249
batch system = pbs
263
250
0 commit comments