Skip to content

Commit d110d6e

Browse files
committed
ensure autoscaling counts at least 1 CPU per task
1 parent 50443a6 commit d110d6e

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

services/autoscaling/src/simcore_service_autoscaling/modules/cluster_scaling/_provider_computational.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,13 @@ async def list_unrunnable_tasks(self, app: FastAPI) -> list[DaskTask]:
8888

8989
def get_task_required_resources(self, task) -> Resources:
9090
assert self # nosec
91-
return utils.resources_from_dask_task(task)
91+
task_required_resources = utils.resources_from_dask_task(task)
92+
# ensure cpu is set at least to 1 as dask-workers use 1 thread per CPU
93+
if task_required_resources.cpus < 1.0:
94+
task_required_resources = task_required_resources.model_copy(
95+
update={"cpus": 1.0}
96+
)
97+
return task_required_resources
9298

9399
async def get_task_defined_instance(
94100
self, app: FastAPI, task

services/autoscaling/src/simcore_service_autoscaling/modules/cluster_scaling/_utils_computational.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@
1616

1717
def resources_from_dask_task(task: DaskTask) -> Resources:
1818
return Resources(
19-
cpus=min(
20-
task.required_resources.get("CPU", _DEFAULT_MAX_CPU), 1.0
21-
), # NOTE: dask-workers use 1 thread per CPU so going below will not scale
19+
cpus=task.required_resources.get("CPU", _DEFAULT_MAX_CPU),
2220
ram=task.required_resources.get("RAM", _DEFAULT_MAX_RAM),
2321
)
2422

0 commit comments

Comments
 (0)