X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/564d715cd2c6ab8649c33d76111ed2d02891f137..d7e80d62a0e1c8587c65975c8bb020200cd0d7d6:/sdk/cwl/arvados_cwl/arvcontainer.py diff --git a/sdk/cwl/arvados_cwl/arvcontainer.py b/sdk/cwl/arvados_cwl/arvcontainer.py index 6372caaa38..8c468dd22d 100644 --- a/sdk/cwl/arvados_cwl/arvcontainer.py +++ b/sdk/cwl/arvados_cwl/arvcontainer.py @@ -246,7 +246,8 @@ class ArvadosContainer(JobBase): runtimeContext.pull_image, runtimeContext.project_uuid, runtimeContext.force_docker_pull, - runtimeContext.tmp_outdir_prefix) + runtimeContext.tmp_outdir_prefix, + runtimeContext.match_local_docker) network_req, _ = self.get_requirement("NetworkAccess") if network_req: @@ -291,14 +292,25 @@ class ArvadosContainer(JobBase): else: container_request["output_storage_classes"] = runtimeContext.intermediate_storage_classes.strip().split(",") - cuda_req, _ = self.get_requirement("http://arvados.org/cwl#CUDARequirement") + cuda_req, _ = self.get_requirement("http://commonwl.org/cwltool#CUDARequirement") if cuda_req: runtime_constraints["cuda"] = { - "device_count": cuda_req.get("minDeviceCount", 1), - "driver_version": cuda_req["minCUDADriverVersion"], - "hardware_capability": cuda_req["minCUDAHardwareCapability"] + "device_count": resources.get("cudaDeviceCount", 1), + "driver_version": cuda_req["cudaVersionMin"], + "hardware_capability": aslist(cuda_req["cudaComputeCapability"])[0] } + if runtimeContext.enable_preemptible is False: + scheduling_parameters["preemptible"] = False + else: + preemptible_req, _ = self.get_requirement("http://arvados.org/cwl#UsePreemptible") + if preemptible_req: + scheduling_parameters["preemptible"] = preemptible_req["usePreemptible"] + elif runtimeContext.enable_preemptible is True: + scheduling_parameters["preemptible"] = True + elif runtimeContext.enable_preemptible is None: + pass + if self.timelimit is not None and self.timelimit > 0: scheduling_parameters["max_run_time"] = self.timelimit @@ -549,6 +561,12 @@ class RunnerContainer(Runner): if self.enable_dev: command.append("--enable-dev") + if runtimeContext.enable_preemptible is True: + command.append("--enable-preemptible") + + if runtimeContext.enable_preemptible is False: + command.append("--disable-preemptible") + command.extend([workflowpath, "/var/lib/cwl/cwl.input.json"]) container_req["command"] = command