X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f30e59af90558e47a4156566d0209bc8efacd85a..093ec98e4a065acfc537ea22c08c337c115fe273:/sdk/cwl/arvados_cwl/arv-cwl-schema-v1.0.yml diff --git a/sdk/cwl/arvados_cwl/arv-cwl-schema-v1.0.yml b/sdk/cwl/arvados_cwl/arv-cwl-schema-v1.0.yml index d5efa31a00..54e0fc5122 100644 --- a/sdk/cwl/arvados_cwl/arv-cwl-schema-v1.0.yml +++ b/sdk/cwl/arvados_cwl/arv-cwl-schema-v1.0.yml @@ -299,8 +299,8 @@ $graph: - type: record name: PropertyDef doc: | - Define a property that will be set on the submitted container - request associated with this workflow or step. + Define an arvados metadata property that will be set on a + container request or output collection. fields: - name: propertyName type: string @@ -359,13 +359,64 @@ $graph: 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? + 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, default 1. - deviceCountMax: - type: int? - doc: Maximum number of GPU devices to request. If not specified, same as `deviceCountMin`. + 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: UsePreemptible + type: record + extends: cwl:ProcessRequirement + inVocab: false + doc: | + Specify a workflow step should opt-in or opt-out of using preemptible (spot) instances. + fields: + class: + type: string + doc: "Always 'arv:UsePreemptible" + jsonldPredicate: + _id: "@type" + _type: "@vocab" + usePreemptible: boolean + +- name: OutputCollectionProperties + type: record + extends: cwl:ProcessRequirement + inVocab: false + doc: | + Specify metadata properties that will be set on the output + collection associated with this workflow or step. + fields: + class: + type: string + doc: "Always 'arv:OutputCollectionProperties" + jsonldPredicate: + _id: "@type" + _type: "@vocab" + outputProperties: + type: PropertyDef[] + jsonldPredicate: + mapSubject: propertyName + mapPredicate: propertyValue