1 # Copyright (C) The Arvados Authors. All rights reserved.
3 # SPDX-License-Identifier: Apache-2.0
5 $base: "http://arvados.org/cwl#"
7 cwl: "https://w3id.org/cwl/cwl#"
8 cwltool: "http://commonwl.org/cwltool#"
10 - $import: https://w3id.org/cwl/CommonWorkflowLanguage.yml
12 - name: cwltool:LoadListingRequirement
14 extends: cwl:ProcessRequirement
19 doc: "Always 'LoadListingRequirement'"
28 symbols: [no_listing, shallow_listing, deep_listing]
30 - name: cwltool:Secrets
33 extends: cwl:ProcessRequirement
37 doc: "Always 'Secrets'"
44 List one or more input parameters that are sensitive (such as passwords)
45 which will be deliberately obscured from logging.
50 - name: cwltool:TimeLimit
53 extends: cwl:ProcessRequirement
55 Set an upper limit on the execution time of a CommandLineTool or
56 ExpressionTool. A tool execution which exceeds the time limit may
57 be preemptively terminated and considered failed. May also be
58 used by batch systems to make scheduling decisions.
62 doc: "Always 'TimeLimit'"
69 The time limit, in seconds. A time limit of zero means no
70 time limit. Negative time limits are an error.
72 - name: RunInSingleContainer
74 extends: cwl:ProcessRequirement
77 Indicates that a subworkflow should run in a single container
78 and not be scheduled as separate steps.
82 doc: "Always 'arv:RunInSingleContainer'"
94 local_output_dir: Use regular file system local to the compute node.
95 There must be sufficient local scratch space to store entire output;
96 specify this with `outdirMin` of `ResourceRequirement`. Files are
97 batch uploaded to Keep when the process completes. Most compatible, but
98 upload step can be time consuming for very large files.
100 keep_output_dir: Use writable Keep mount. Files are streamed to Keep as
101 they are written. Does not consume local scratch space, but does consume
102 RAM for output buffers (up to 192 MiB per file simultaneously open for
103 writing.) Best suited to processes which produce sequential output of
104 large files (non-sequential writes may produced fragmented file
105 manifests). Supports regular files and directories, does not support
106 special files such as symlinks, hard links, named pipes, named sockets,
110 - name: RuntimeConstraints
112 extends: cwl:ProcessRequirement
115 Set Arvados-specific runtime hints.
119 doc: "Always 'arv:RuntimeConstraints'"
126 Size of file data buffer for Keep mount in MiB. Default is 256
127 MiB. Increase this to reduce cache thrashing in situations such as
128 accessing multiple large (64+ MiB) files at the same time, or
129 performing random access on a large file.
130 - name: outputDirType
133 Preferred backing store for output staging. If not specified, the
134 system may choose which one to use.
136 - name: PartitionRequirement
138 extends: cwl:ProcessRequirement
141 Select preferred compute partitions on which to run jobs.
145 doc: "Always 'arv:PartitionRequirement'"
154 - name: APIRequirement
156 extends: cwl:ProcessRequirement
159 Indicates that process wants to access to the Arvados API. Will be granted
160 limited network access and have ARVADOS_API_HOST and ARVADOS_API_TOKEN set
165 doc: "Always 'arv:APIRequirement'"
170 - name: IntermediateOutput
172 extends: cwl:ProcessRequirement
175 Specify desired handling of intermediate output collections.
179 doc: "Always 'arv:IntermediateOutput'"
186 If the value is greater than zero, consider intermediate output
187 collections to be temporary and should be automatically
188 trashed. Temporary collections will be trashed `outputTTL` seconds
189 after creation. A value of zero means intermediate output should be
190 retained indefinitely (this is the default behavior).
192 Note: arvados-cwl-runner currently does not take workflow dependencies
193 into account when setting the TTL on an intermediate output
194 collection. If the TTL is too short, it is possible for a collection to
195 be trashed before downstream steps that consume it are started. The
196 recommended minimum value for TTL is the expected duration of the
199 - name: ReuseRequirement
201 extends: cwl:ProcessRequirement
204 Enable/disable work reuse for current process. Default true (work reuse enabled).
208 doc: "Always 'arv:ReuseRequirement'"
215 - name: WorkflowRunnerResources
217 extends: cwl:ProcessRequirement
220 Specify memory or cores resource request for the CWL runner process itself.
224 doc: "Always 'arv:WorkflowRunnerResources'"
230 doc: Minimum RAM, in mebibytes (2**20)
231 jsonldPredicate: "https://w3id.org/cwl/cwl#ResourceRequirement/ramMin"
234 doc: Minimum cores allocated to cwl-runner
235 jsonldPredicate: "https://w3id.org/cwl/cwl#ResourceRequirement/coresMin"
239 Size of collection metadata cache for the workflow runner, in
240 MiB. Default 256 MiB. Will be added on to the RAM request
241 when determining node size to request.
242 jsonldPredicate: "http://arvados.org/cwl#RuntimeConstraints/keep_cache"
246 The container image containing the correct version of
247 arvados-cwl-runner to use when invoking the workflow on
250 - name: ClusterTarget
252 extends: cwl:ProcessRequirement
255 Specify where a workflow step should run
259 doc: "Always 'arv:ClusterTarget'"
265 doc: The cluster to run the container
268 doc: The project that will own the container requests and intermediate collections