X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/615e280721c4be51556e2c31b4baffa69dd0d6d8..32030bce1b67218c91a8ed2a0287ec973221c5f7:/sdk/cwl/arvados_cwl/arv-cwl-schema-v1.2.yml diff --git a/sdk/cwl/arvados_cwl/arv-cwl-schema-v1.2.yml b/sdk/cwl/arvados_cwl/arv-cwl-schema-v1.2.yml index b9b9e61651..e95b6543fd 100644 --- a/sdk/cwl/arvados_cwl/arv-cwl-schema-v1.2.yml +++ b/sdk/cwl/arvados_cwl/arv-cwl-schema-v1.2.yml @@ -184,6 +184,12 @@ $graph: MiB. Default 256 MiB. Will be added on to the RAM request when determining node size to request. jsonldPredicate: "http://arvados.org/cwl#RuntimeConstraints/keep_cache" + acrContainerImage: + type: string? + doc: | + The container image containing the correct version of + arvados-cwl-runner to use when invoking the workflow on + Arvados. - name: ClusterTarget type: record @@ -204,3 +210,107 @@ $graph: project_uuid: type: string? doc: The project that will own the container requests and intermediate collections + + +- name: OutputStorageClass + type: record + extends: cwl:ProcessRequirement + inVocab: false + doc: | + Specify the storage class to be used for intermediate and final output + fields: + class: + type: string + doc: "Always 'arv:StorageClassHint" + jsonldPredicate: + _id: "@type" + _type: "@vocab" + intermediateStorageClass: + type: + - "null" + - string + - type: array + items: string + doc: One or more storages classes + finalStorageClass: + type: + - "null" + - string + - type: array + items: string + doc: One or more storages classes + + +- type: record + name: PropertyDef + doc: | + Define a property that will be set on the submitted container + request associated with this workflow or step. + fields: + - name: propertyName + type: string + doc: The property key + - name: propertyValue + type: [Any] + doc: The property value + + +- name: ProcessProperties + type: record + extends: cwl:ProcessRequirement + inVocab: false + doc: | + Specify metadata properties that will be set on the submitted + container request associated with this workflow or step. + fields: + class: + type: string + doc: "Always 'arv:ProcessProperties" + jsonldPredicate: + _id: "@type" + _type: "@vocab" + processProperties: + type: PropertyDef[] + jsonldPredicate: + mapSubject: propertyName + mapPredicate: propertyValue + + +- name: cwltool: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. + cudaComputeCapabilityMin: + type: string + doc: Minimum CUDA hardware capability required to run the software, in X.Y format. + deviceCountMin: + type: int? + default: 1 + doc: Minimum number of GPU devices to request, default 1. + deviceCountMax: + type: int? + doc: Maximum number of GPU devices to request. If not specified, same as `deviceCountMin`.