in cookbooks/aws-parallelcluster-slurm/files/default/head_node_slurm/slurm/config_utils.py [0:0]
def get_min_vcpus(instance_types, instance_types_info) -> Tuple[int, int]:
"""Return min value for vCPUs and threads per core in the instance type list."""
min_vcpus_count = None
min_threads_per_core = None
for instance_type in instance_types:
instance_type_info = instance_types_info[instance_type]
vcpus_info = instance_type_info.get("VCpuInfo", {})
# The instance_types_data does not have vCPUs information for the requested instance type.
# In this case we set vCPUs to 1
vcpus_count = vcpus_info.get("DefaultVCpus", 1)
if min_vcpus_count is None or vcpus_count < min_vcpus_count:
min_vcpus_count = vcpus_count
threads_per_core = vcpus_info.get("DefaultThreadsPerCore")
if threads_per_core is None:
supported_architectures = instance_type_info.get("ProcessorInfo", {}).get("SupportedArchitectures", [])
threads_per_core = 2 if "x86_64" in supported_architectures else 1
if min_threads_per_core is None or threads_per_core < min_threads_per_core:
min_threads_per_core = threads_per_core
if min_vcpus_count == 1 and min_threads_per_core == 1:
# vcpus and threads numbers lower bound
break
return min_vcpus_count, min_threads_per_core