@@ -10,10 +10,10 @@ $graph:
10
10
type : documentation
11
11
doc :
12
12
- |
13
- # Common Workflow Language (CWL) Command Line Tool Description, v1.2.0-dev1
13
+ # Common Workflow Language (CWL) Command Line Tool Description, v1.2.0-dev2
14
14
15
15
This version:
16
- * https://w3id.org/cwl/v1.2.0-dev1 /
16
+ * https://w3id.org/cwl/v1.2.0-dev2 /
17
17
18
18
Current version:
19
19
* https://w3id.org/cwl/
@@ -37,21 +37,26 @@ $graph:
37
37
- {$include: intro.md}
38
38
39
39
- |
40
- ## Introduction to the CWL Command Line Tool standard v1.2.0-dev1
40
+ ## Introduction to the CWL Command Line Tool standard v1.2.0-dev2
41
41
42
42
This specification represents the latest development release from the
43
- CWL group. Since the v1.1 release, v1.2.0-dev1 introduces the
43
+ CWL group. Since the v1.1 release, v1.2.0-dev2 introduces the
44
44
following updates to the CWL Command Line Tool standard.
45
- Documents should use `cwlVersion: v1.2.0-dev1 ` to make use of new
46
- syntax and features introduced in v1.2.0-dev1 . Existing v1.1 documents
45
+ Documents should use `cwlVersion: v1.2.0-dev2 ` to make use of new
46
+ syntax and features introduced in v1.2.0-dev2 . Existing v1.1 documents
47
47
should be trivially updatable by changing `cwlVersion`, however
48
48
CWL documents that relied on previously undefined or
49
49
underspecified behavior may have slightly different behavior in
50
- v1.2.0-dev1 .
50
+ v1.2.0-dev2 .
51
51
52
52
## Changelog
53
53
54
- See also the [CWL Workflow Description, v1.2.0-dev1 changelog](Workflow.html#Changelog).
54
+ * `coresMin` and `coresMax` of
55
+ [ResourceRequirement](#ResourceRequirement) may now request fractional CPUs.
56
+ * (CommandLineTool)[#CommandLineTool] can now express `intent`
57
+ with an identifier for the type of computational operation.
58
+
59
+ See also the [CWL Workflow Description, v1.2.0-dev2 changelog](Workflow.html#Changelog).
55
60
56
61
## Purpose
57
62
@@ -874,14 +879,22 @@ $graph:
874
879
If the value is a string literal or an expression which evaluates to a
875
880
string, a new file must be created with the string as the file contents.
876
881
877
- If the value is an expression that evaluates to a `File` object, this
878
- indicates the referenced file should be added to the designated output
879
- directory prior to executing the tool.
882
+ If the value is an expression that evaluates to a `File` or `Directory`
883
+ object, this indicates the referenced file or directory should be added
884
+ to the designated output directory prior to executing the tool.
885
+
886
+ If the value is an expression that evaluates to an array of `File` or
887
+ `Directory` objects, this indicates the referenced files or directories
888
+ should be added to the designated output directory prior to executing
889
+ the tool, with ignoring the value in `entryname`.
880
890
881
891
If the value is an expression that evaluates to a `Dirent` object, this
882
892
indicates that the File or Directory in `entry` should be added to the
883
893
designated output directory with the name in `entryname`.
884
894
895
+ If the value is an expression that evaluates to `null`, nothing is added
896
+ to the designated output directory from this entry.
897
+
885
898
If `writable` is false, the file may be made available using a bind
886
899
mount or file system link to avoid unnecessary copying of the input
887
900
file.
@@ -934,7 +947,7 @@ $graph:
934
947
designated output directory prior to executing the command line tool.
935
948
936
949
May be an expression. If so, the expression return value must validate as
937
- `{type: array, items: ["null", File, File[], Directory, Directory[], Dirent ]}`.
950
+ `{type: array, items: ["null", File, Directory, Dirent, {type: array, items: [File, Directory]} ]}`.
938
951
939
952
Files or Directories which are listed in the input parameters and
940
953
appear in the `InitialWorkDirRequirement` listing must have their
@@ -1018,12 +1031,40 @@ $graph:
1018
1031
" _id " : " @type"
1019
1032
" _type " : " @vocab"
1020
1033
- name : coresMin
1021
- type : ["null", long, Expression]
1022
- doc : Minimum reserved number of CPU cores (default is 1)
1034
+ type : ["null", long, float, Expression]
1035
+ doc : |
1036
+ Minimum reserved number of CPU cores (default is 1).
1037
+
1038
+ May be a fractional value to indicate to a scheduling
1039
+ algorithm that one core can be allocated to multiple
1040
+ jobs. For example, a value of 0.25 indicates that up to 4
1041
+ jobs may run in parallel on 1 core. A value of 1.25 means
1042
+ that up to 3 jobs can run on a 4 core system (4/1.25 ≈ 3).
1043
+
1044
+ Processes can only share a core allocation if the sum of each
1045
+ of their `ramMax`, `tmpdirMax`, and `outdirMax` requests also
1046
+ do not exceed the capacity of the node.
1047
+
1048
+ Processes sharing a core must have the same level of isolation
1049
+ (typically a container or VM) that they would normally.
1050
+
1051
+ The reported number of CPU cores reserved for the process,
1052
+ which is available to expressions on the CommandLineTool as
1053
+ `runtime.cores`, must be a non-zero integer, and may be
1054
+ calculated by rounding up the cores request to the next whole
1055
+ number.
1056
+
1057
+ Scheduling systems may allocate fractional CPU resources by
1058
+ setting quotas or scheduling weights. Scheduling systems that
1059
+ do not support fractional CPUs may round up the request to the
1060
+ next whole number.
1023
1061
1024
1062
- name : coresMax
1025
- type : ["null", int, Expression]
1026
- doc : Maximum reserved number of CPU cores
1063
+ type : ["null", long, float, Expression]
1064
+ doc : |
1065
+ Maximum reserved number of CPU cores.
1066
+
1067
+ See `coresMin` for discussion about fractional CPU requests.
1027
1068
1028
1069
- name : ramMin
1029
1070
type : ["null", long, Expression]
0 commit comments