From de08e39dc34b523f84b8904d32f8344dc9b7acaa Mon Sep 17 00:00:00 2001 From: qiagu Date: Sat, 23 Jul 2022 12:05:01 -0700 Subject: [PATCH] Improve auto_platform resources mapping --- lib/galaxy/jobs/runners/aws.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/lib/galaxy/jobs/runners/aws.py b/lib/galaxy/jobs/runners/aws.py index 3defa7f3f9d..fcb7c42f1f3 100644 --- a/lib/galaxy/jobs/runners/aws.py +++ b/lib/galaxy/jobs/runners/aws.py @@ -1,5 +1,6 @@ """ Galaxy job runners to use Amazon AWS native compute resources, such as AWS Batch. """ +import bisect import hashlib import json import logging @@ -548,20 +549,17 @@ class AWSBatchJobRunner(AsynchronousJobRunner): max_vcpu = self.FARGATE_VCPUS[-1] max_memory = self.FARGATE_RESOURCES[max_vcpu][-1] if vcpu <= max_vcpu and memory <= max_memory: # type: ignore[operator] - new_vcpu, new_memory = None, None - for c in self.FARGATE_VCPUS: - if c < vcpu: # type: ignore[operator] - continue - for m in self.FARGATE_RESOURCES[c]: - if m >= memory: # type: ignore[operator] - new_vcpu = c - new_memory = m - break - if new_memory: + c_ix = bisect.bisect_left(self.FARGATE_VCPUS, vcpu) # type: ignore[type-var] + length = len(self.FARGATE_VCPUS) + while c_ix < length: + c = self.FARGATE_VCPUS[c_ix] + m_ix = bisect.bisect_left(self.FARGATE_RESOURCES[c], memory) # type: ignore[type-var] + if m_ix < len(self.FARGATE_RESOURCES[c]): platform = "FARGATE" - parsed_params["vcpu"] = new_vcpu - parsed_params["memory"] = new_memory + parsed_params["vcpu"] = c + parsed_params["memory"] = self.FARGATE_RESOURCES[c][m_ix] break + c_ix += 1 # parse JOB QUEUE job_queues = parsed_params.get("job_queue").split(",") # type: ignore[union-attr] if len(job_queues) < 2: