8460: Merge branch 'master' into 8460-websocket-go
[arvados.git] / doc / user / cwl / cwl-extensions.html.textile.liquid
1 ---
2 layout: default
3 navsection: userguide
4 title: Arvados CWL Extensions
5 ...
6
7 Arvados provides several extensions to CWL for workflow optimization, site-specific configuration, and to enable access the Arvados API.
8
9 To use Arvados CWL extensions, add the following @$namespaces@ section at the top of your CWL file:
10
11 <pre>
12 $namespaces:
13   arv: "http://arvados.org/cwl#"
14 </pre>
15
16 Arvados extensions must go into the @hints@ section, for example:
17
18 <pre>
19 hints:
20   arv:RunInSingleContainer: {}
21   arv:RuntimeConstraints:
22     keep_cache: 123456
23     keep_output_dir: local_output_dir
24   arv:PartitionRequirement:
25     partition: dev_partition
26   arv:APIRequirement: {}
27 </pre>
28
29 h2. arv:RunInSingleContainer
30
31 Indicates that a subworkflow should run in a single container and not be scheduled as separate steps.
32
33 h2. arv:RuntimeConstraints
34
35 Set Arvados-specific runtime hints.
36
37 table(table table-bordered table-condensed).
38 |_. Field |_. Type |_. Description |
39 |keep_cache|int|Size of file data buffer for Keep mount in MiB. Default is 256 MiB. Increase this to reduce cache thrashing in situations such as accessing multiple large (64+ MiB) files at the same time, or performing random access on a large file.|
40 |outputDirType|enum|Preferred backing store for output staging.  If not specified, the system may choose which one to use.  One of *local_output_dir* or *keep_output_dir*|
41
42 *local_output_dir*: Use regular file system local to the compute node. There must be sufficient local scratch space to store entire output; specify this with @outdirMin@ of @ResourceRequirement@.  Files are batch uploaded to Keep when the process completes.  Most compatible, but upload step can be time consuming for very large files.
43
44 *keep_output_dir*: Use writable Keep mount.  Files are streamed to Keep as they are written.  Does not consume local scratch space, but does consume RAM for output buffers (up to 192 MiB per file simultaneously open for writing.)  Best suited to processes which produce sequential output of large files (non-sequential writes may produced fragmented file manifests).  Supports regular files and directories, does not support special files such as symlinks, hard links, named pipes, named sockets, or device nodes.|
45
46 h2. arv:PartitionRequirement
47
48 Select preferred compute partitions on which to run jobs.
49
50 table(table table-bordered table-condensed).
51 |_. Field |_. Type |_. Description |
52 |partition|string or array of strings||
53
54 h2. arv:APIRequirement
55
56 Indicates that process wants to access to the Arvados API.  Will be granted limited network access and have @ARVADOS_API_HOST@ and @ARVADOS_API_TOKEN@ set in the environment.