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: RunInSingleContainer
32 extends: cwl:ProcessRequirement
35 Indicates that a subworkflow should run in a single container
36 and not be scheduled as separate steps.
40 doc: "Always 'arv:RunInSingleContainer'"
52 local_output_dir: Use regular file system local to the compute node.
53 There must be sufficient local scratch space to store entire output;
54 specify this with `outdirMin` of `ResourceRequirement`. Files are
55 batch uploaded to Keep when the process completes. Most compatible, but
56 upload step can be time consuming for very large files.
58 keep_output_dir: Use writable Keep mount. Files are streamed to Keep as
59 they are written. Does not consume local scratch space, but does consume
60 RAM for output buffers (up to 192 MiB per file simultaneously open for
61 writing.) Best suited to processes which produce sequential output of
62 large files (non-sequential writes may produced fragmented file
63 manifests). Supports regular files and directories, does not support
64 special files such as symlinks, hard links, named pipes, named sockets,
68 - name: RuntimeConstraints
70 extends: cwl:ProcessRequirement
73 Set Arvados-specific runtime hints.
77 doc: "Always 'arv:RuntimeConstraints'"
84 Size of file data buffer for Keep mount in MiB. Default is 256
85 MiB. Increase this to reduce cache thrashing in situations such as
86 accessing multiple large (64+ MiB) files at the same time, or
87 performing random access on a large file.
91 Preferred backing store for output staging. If not specified, the
92 system may choose which one to use.
94 - name: PartitionRequirement
96 extends: cwl:ProcessRequirement
99 Select preferred compute partitions on which to run jobs.
103 doc: "Always 'arv:PartitionRequirement'"
112 - name: APIRequirement
114 extends: cwl:ProcessRequirement
117 Indicates that process wants to access to the Arvados API. Will be granted
118 limited network access and have ARVADOS_API_HOST and ARVADOS_API_TOKEN set
123 doc: "Always 'arv:APIRequirement'"
128 - name: IntermediateOutput
130 extends: cwl:ProcessRequirement
133 Specify desired handling of intermediate output collections.
137 doc: "Always 'arv:IntermediateOutput'"
144 If the value is greater than zero, consider intermediate output
145 collections to be temporary and should be automatically
146 trashed. Temporary collections will be trashed `outputTTL` seconds
147 after creation. A value of zero means intermediate output should be
148 retained indefinitely (this is the default behavior).
150 Note: arvados-cwl-runner currently does not take workflow dependencies
151 into account when setting the TTL on an intermediate output
152 collection. If the TTL is too short, it is possible for a collection to
153 be trashed before downstream steps that consume it are started. The
154 recommended minimum value for TTL is the expected duration of the
157 - name: ReuseRequirement
159 extends: cwl:ProcessRequirement
162 Enable/disable work reuse for current process. Default true (work reuse enabled).
166 doc: "Always 'arv:ReuseRequirement'"