-
-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
97afb19
commit d07da91
Showing
1 changed file
with
261 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,261 @@ | ||
$base: http://commonwl.org/cwltool# | ||
$namespaces: | ||
cwl: "https://w3id.org/cwl/cwl#" | ||
cwltool: "http://commonwl.org/cwltool#" | ||
$graph: | ||
- $import: https://github.com/common-workflow-language/cwl-v1.2/raw/codegen/CommonWorkflowLanguage.yml | ||
|
||
- name: Secrets | ||
type: record | ||
inVocab: false | ||
extends: cwl:ProcessRequirement | ||
fields: | ||
class: | ||
type: string | ||
doc: "Always 'Secrets'" | ||
jsonldPredicate: | ||
"_id": "@type" | ||
"_type": "@vocab" | ||
secrets: | ||
type: string[] | ||
doc: | | ||
List one or more input parameters that are sensitive (such as passwords) | ||
which will be deliberately obscured from logging. | ||
jsonldPredicate: | ||
"_type": "@id" | ||
refScope: 0 | ||
|
||
|
||
- name: ProcessGenerator | ||
type: record | ||
inVocab: true | ||
extends: cwl:Process | ||
documentRoot: true | ||
fields: | ||
- name: class | ||
jsonldPredicate: | ||
"_id": "@type" | ||
"_type": "@vocab" | ||
type: string | ||
- name: run | ||
type: [string, cwl:Process] | ||
jsonldPredicate: | ||
_id: "cwl:run" | ||
_type: "@id" | ||
subscope: run | ||
doc: | | ||
Specifies the process to run. | ||
- name: MPIRequirement | ||
type: record | ||
inVocab: false | ||
extends: cwl:ProcessRequirement | ||
doc: | | ||
Indicates that a process requires an MPI runtime. | ||
fields: | ||
- name: class | ||
type: string | ||
doc: "Always 'MPIRequirement'" | ||
jsonldPredicate: | ||
"_id": "@type" | ||
"_type": "@vocab" | ||
- name: processes | ||
type: [int, cwl:Expression] | ||
doc: | | ||
The number of MPI processes to start. If you give a string, | ||
this will be evaluated as a CWL Expression and it must | ||
evaluate to an integer. | ||
- name: CUDARequirement | ||
type: record | ||
extends: cwl:ProcessRequirement | ||
inVocab: false | ||
doc: | | ||
Require support for NVIDA CUDA (GPU hardware acceleration). | ||
fields: | ||
class: | ||
type: string | ||
doc: 'cwltool:CUDARequirement' | ||
jsonldPredicate: | ||
_id: "@type" | ||
_type: "@vocab" | ||
cudaVersionMin: | ||
type: string | ||
doc: | | ||
Minimum CUDA version to run the software, in X.Y format. This | ||
corresponds to a CUDA SDK release. When running directly on | ||
the host (not in a container) the host must have a compatible | ||
CUDA SDK (matching the exact version, or, starting with CUDA | ||
11.3, matching major version). When run in a container, the | ||
container image should provide the CUDA runtime, and the host | ||
driver is injected into the container. In this case, because | ||
CUDA drivers are backwards compatible, it is possible to | ||
use an older SDK with a newer driver across major versions. | ||
See https://docs.nvidia.com/deploy/cuda-compatibility/ for | ||
details. | ||
cudaComputeCapability: | ||
type: | ||
- 'string' | ||
- 'string[]' | ||
doc: | | ||
CUDA hardware capability required to run the software, in X.Y | ||
format. | ||
* If this is a single value, it defines only the minimum | ||
compute capability. GPUs with higher capability are also | ||
accepted. | ||
* If it is an array value, then only select GPUs with compute | ||
capabilities that explicitly appear in the array. | ||
cudaDeviceCountMin: | ||
type: ['null', int, cwl:Expression] | ||
default: 1 | ||
doc: | | ||
Minimum number of GPU devices to request. If not specified, | ||
same as `cudaDeviceCountMax`. If neither are specified, | ||
default 1. | ||
cudaDeviceCountMax: | ||
type: ['null', int, cwl:Expression] | ||
doc: | | ||
Maximum number of GPU devices to request. If not specified, | ||
same as `cudaDeviceCountMin`. | ||
- name: LoopInput | ||
type: record | ||
fields: | ||
id: | ||
type: string? | ||
jsonldPredicate: "@id" | ||
doc: "It must reference the `id` of one of the elements in the `in` field of the step." | ||
loopSource: | ||
doc: | | ||
Specifies one or more of the step output parameters that will | ||
provide input to the loop iterations after the first one (inputs | ||
of the first iteration are the step input parameters). | ||
type: | ||
- string? | ||
- string[]? | ||
jsonldPredicate: | ||
"_type": "@id" | ||
refScope: 1 | ||
linkMerge: | ||
type: cwl:LinkMergeMethod? | ||
jsonldPredicate: "cwl:linkMerge" | ||
default: merge_nested | ||
doc: | | ||
The method to use to merge multiple inbound links into a single array. | ||
If not specified, the default method is "merge_nested". | ||
pickValue: | ||
type: ["null", cwl:PickValueMethod] | ||
jsonldPredicate: "cwl:pickValue" | ||
doc: | | ||
The method to use to choose non-null elements among multiple sources. | ||
default: | ||
type: ["null", Any] | ||
doc: | | ||
The default value for this parameter to use if either there is no | ||
`source` field, or the value produced by the `source` is `null`. The | ||
default must be applied prior to scattering or evaluating `valueFrom`. | ||
jsonldPredicate: | ||
_id: "sld:default" | ||
_container: "@list" | ||
noLinkCheck: true | ||
valueFrom: | ||
type: | ||
- "null" | ||
- string | ||
- cwl:Expression | ||
jsonldPredicate: "cwl:valueFrom" | ||
doc: | | ||
To use valueFrom, [StepInputExpressionRequirement](#StepInputExpressionRequirement) must | ||
be specified in the workflow or workflow step requirements. | ||
If `valueFrom` is a constant string value, use this as the value for | ||
this input parameter. | ||
If `valueFrom` is a parameter reference or expression, it must be | ||
evaluated to yield the actual value to be assigned to the input field. | ||
The `self` value in the parameter reference or expression must be | ||
`null` if there is no `loopSource` field, or the value of the | ||
parameter(s) specified in the `loopSource` field. | ||
The value of `inputs` in the parameter reference or expression must be | ||
the input object to the previous iteration of the workflow step (or the initial | ||
inputs for the first iteration). | ||
- name: Loop | ||
type: record | ||
extends: cwl:ProcessRequirement | ||
inVocab: false | ||
doc: | | ||
Prototype to enable workflow-level looping of a step. | ||
Valid only under `requirements` of a https://www.commonwl.org/v1.2/Workflow.html#WorkflowStep. | ||
Unlike other CWL requirements, Loop requirement is not propagated to inner steps. | ||
`loopWhen` is an expansion of the CWL v1.2 `when` construct which controls | ||
conditional execution. | ||
Using `loopWhen` and `when` for the same step will produce an error. | ||
`loopWhen` is not compatible with `scatter` at this time and combining the | ||
two in the same step will produce an error. | ||
fields: | ||
class: | ||
type: string | ||
doc: 'cwltool:Loop' | ||
jsonldPredicate: | ||
_id: "@type" | ||
_type: "@vocab" | ||
loopWhen: | ||
type: cwl:Expression | ||
doc: | | ||
Only run the step while the expression evaluates to `true`. | ||
If `false` and no iteration has been performed, the step is skipped. | ||
A skipped step produces a `null` on each output. | ||
The `inputs` value in the expression must be the step input object. | ||
It is an error if this expression returns a value other than `true` or `false`. | ||
loop: | ||
type: LoopInput[] | ||
jsonldPredicate: | ||
_id: "cwltool:loop" | ||
mapSubject: id | ||
mapPredicate: loopSource | ||
doc: | | ||
Defines the input parameters of the loop iterations after the first one | ||
(inputs of the first iteration are the step input parameters). If no | ||
`loop` rule is specified for a given step `in` field, the initial value | ||
is kept constant among all iterations. | ||
outputMethod: | ||
type: | ||
type: enum | ||
name: LoopOutputModes | ||
symbols: [ last, all ] | ||
default: last | ||
doc: | | ||
- Specify the desired method of dealing with loop outputs | ||
- Default. Propagates only the last computed element to the subsequent steps when the loop terminates. | ||
- Propagates a single array with all output values to the subsequent steps when the loop terminates. | ||
- name: ShmSize | ||
type: record | ||
extends: cwl:ProcessRequirement | ||
inVocab: false | ||
fields: | ||
class: | ||
type: string | ||
doc: 'cwltool:ShmSize' | ||
jsonldPredicate: | ||
"_id": "@type" | ||
"_type": "@vocab" | ||
shmSize: | ||
type: string | ||
doc: | | ||
Size of /dev/shm. The format is `<number><unit>`. <number> must be greater | ||
than 0. Unit is optional and can be `b` (bytes), `k` (kilobytes), `m` | ||
(megabytes), or `g` (gigabytes). If you omit the unit, the default is | ||
bytes. If you omit the size entirely, the value is `64m`." |