Skip to content
Open
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ def __init__(self, queue_name: str, compute_resource_config: Dict, no_gpu, memor
self.name = compute_resource_config["Name"]
self.disable_multithreading = compute_resource_config["DisableSimultaneousMultithreading"]
self.custom_settings = compute_resource_config.get("CustomSlurmSettings", {})
# If Features are in CustomSlurmSettings, fetch them and remove from CustomSlurmSettings
self.custom_features = self.custom_settings.pop("Feature", "")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of mutating the custom_settings object by removing features I would keep custom_settings aligned with what is injected from config and filter out features when building the custom += f" {param}={value}" string as part of the nodename rendering.

self.spot_price = compute_resource_config.get("SpotPrice", None)
self.instance_types = get_instance_types(compute_resource_config)
self.real_memory = get_real_memory(
Expand Down Expand Up @@ -85,24 +87,38 @@ def _definitions(self, dynamic=False):
return definitions

def _features(self, dynamic=False):
features = set(self.custom_features.split(','))
# this is a simple workaround for empty Features: split will give [''] and we'll discard it
# as well as all empty strings.
features.discard('')
Comment on lines +91 to +93
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

default to None when reading the Feature string and skip the splitting so that you don't need to discard ''?


# remove "system" features from configured features, so that they will never interfere
for feat in ('static', 'dynamic', 'gpu', 'efa') :
features.discard(feat)
Comment on lines +95 to +97
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you could consider leaving these unaltered - if for any reason the user passes them in we could just honor them as overrides


resource_type = "static"
if dynamic:
resource_type = "dynamic"
features.add(resource_type)

# If there's only 1 instance type defined, add it as a feature.
# Note: When multiple instance types are defined we do not know in advance which one will be used
# to launch the node. So we do not list any of them as feature
if len(self.instance_types) == 1:
features.add(self.instance_types[0])

instance_type = f",{self.instance_types[0]}"
if len(self.instance_types) > 1:
# When multiple instance types are defined we do not know in advance which one will be used
# to launch the node. So we do not list any of them as feature
instance_type = ""
# add ComputeResource name as a feature
features.add(self.name)

features = f"Feature={resource_type}{instance_type},{self.name}"
if self.efa_enabled:
features += ",efa"
features.add('efa')

if self.gpu_count > 0:
features += ",gpu"

return features
features.add('gpu')

# Note: sorted() is called to ease tests development only: we can then predict features ordering
features_string = ','.join(sorted(features))
return f"Feature={features_string}"

def _custom_settings(self):
custom = ""
Expand Down
26 changes: 26 additions & 0 deletions test/unit/slurm/test_slurm_config_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,32 @@ def test_generate_slurm_config_with_custom_settings(mocker, test_datadir, tmpdir
_assert_files_are_equal(tmpdir / file_name, test_datadir / "expected_outputs" / output_file_name)


def test_generate_slurm_config_with_custom_features(mocker, test_datadir, tmpdir):
_mock_head_node_config(mocker)

input_file = os.path.join(test_datadir, "sample_input.yaml")
instance_types_data = os.path.join(test_datadir, "sample_instance_types_data.json")

template_directory = get_template_folder()
generate_slurm_config_files(
tmpdir,
template_directory,
input_file,
instance_types_data,
dryrun=False,
no_gpu=False,
compute_node_bootstrap_timeout=1600,
realmemory_to_ec2memory_ratio=0.95,
slurmdbd_user="slurm",
cluster_name="test-cluster",
)

for queue in ["efa", "gpu", "multiple_spot"]:
file_name = f"pcluster/slurm_parallelcluster_{queue}_partition.conf"
output_file_name = f"pcluster/slurm_parallelcluster_{queue}_partition.conf"
_assert_files_are_equal(tmpdir / file_name, test_datadir / "expected_outputs" / output_file_name)


def test_generate_slurm_config_with_job_exc_alloc(mocker, test_datadir, tmpdir):
_mock_head_node_config(mocker)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# This file is automatically generated by pcluster

NodeName=efa-st-efa-c5n-[1-1] CPUs=36 RealMemory=186777 State=CLOUD Feature=static,c5n.18xlarge,efa-c5n,efa Weight=1
NodeName=efa-dy-efa-c5n-[1-4] CPUs=36 RealMemory=186777 State=CLOUD Feature=dynamic,c5n.18xlarge,efa-c5n,efa Weight=1000
NodeName=efa-st-efa-c5n-[1-1] CPUs=36 RealMemory=186777 State=CLOUD Feature=c5n.18xlarge,efa,efa-c5n,static Weight=1
NodeName=efa-dy-efa-c5n-[1-4] CPUs=36 RealMemory=186777 State=CLOUD Feature=c5n.18xlarge,dynamic,efa,efa-c5n Weight=1000

NodeSet=efa_nodes Nodes=efa-st-efa-c5n-[1-1],efa-dy-efa-c5n-[1-4]
PartitionName=efa Nodes=efa_nodes MaxTime=INFINITE State=UP
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# This file is automatically generated by pcluster

NodeName=efa-st-efa-c5n-[1-1] CPUs=36 RealMemory=176947 State=CLOUD Feature=static,c5n.18xlarge,efa-c5n,efa Weight=1
NodeName=efa-dy-efa-c5n-[1-4] CPUs=36 RealMemory=176947 State=CLOUD Feature=dynamic,c5n.18xlarge,efa-c5n,efa Weight=1000
NodeName=efa-st-efa-c5n-[1-1] CPUs=36 RealMemory=176947 State=CLOUD Feature=c5n.18xlarge,efa,efa-c5n,static Weight=1
NodeName=efa-dy-efa-c5n-[1-4] CPUs=36 RealMemory=176947 State=CLOUD Feature=c5n.18xlarge,dynamic,efa,efa-c5n Weight=1000

NodeSet=efa_nodes Nodes=efa-st-efa-c5n-[1-1],efa-dy-efa-c5n-[1-4]
PartitionName=efa Nodes=efa_nodes MaxTime=INFINITE State=UP
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# This file is automatically generated by pcluster

NodeName=gpu-st-gpu-g38xlarge-[1-1] CPUs=16 RealMemory=237363 State=CLOUD Feature=static,g3.8xlarge,gpu-g38xlarge,gpu Weight=1 Gres=gpu:m60:2
NodeName=gpu-dy-gpu-g38xlarge-[1-4] CPUs=16 RealMemory=237363 State=CLOUD Feature=dynamic,g3.8xlarge,gpu-g38xlarge,gpu Weight=1000 Gres=gpu:m60:2
NodeName=gpu-dy-gpu-p3dn24xlarge-[1-10] CPUs=48 RealMemory=747110 State=CLOUD Feature=dynamic,p3dn.24xlarge,gpu-p3dn24xlarge,gpu Weight=1000 Gres=gpu:v100:8
NodeName=gpu-st-gpu-g38xlarge-[1-1] CPUs=16 RealMemory=237363 State=CLOUD Feature=g3.8xlarge,gpu,gpu-g38xlarge,static Weight=1 Gres=gpu:m60:2
NodeName=gpu-dy-gpu-g38xlarge-[1-4] CPUs=16 RealMemory=237363 State=CLOUD Feature=dynamic,g3.8xlarge,gpu,gpu-g38xlarge Weight=1000 Gres=gpu:m60:2
NodeName=gpu-dy-gpu-p3dn24xlarge-[1-10] CPUs=48 RealMemory=747110 State=CLOUD Feature=dynamic,gpu,gpu-p3dn24xlarge,p3dn.24xlarge Weight=1000 Gres=gpu:v100:8

NodeSet=gpu_nodes Nodes=gpu-st-gpu-g38xlarge-[1-1],gpu-dy-gpu-g38xlarge-[1-4],gpu-dy-gpu-p3dn24xlarge-[1-10]
PartitionName=gpu Nodes=gpu_nodes MaxTime=INFINITE State=UP
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# This file is automatically generated by pcluster

NodeName=gpu-st-gpu-g38xlarge-[1-1] CPUs=16 RealMemory=248000 State=CLOUD Feature=static,g3.8xlarge,gpu-g38xlarge,gpu Weight=1 Gres=gpu:m60:2
NodeName=gpu-dy-gpu-g38xlarge-[1-4] CPUs=16 RealMemory=248000 State=CLOUD Feature=dynamic,g3.8xlarge,gpu-g38xlarge,gpu Weight=1000 Gres=gpu:m60:2
NodeName=gpu-dy-gpu-p3dn24xlarge-[1-10] CPUs=48 RealMemory=707788 State=CLOUD Feature=dynamic,p3dn.24xlarge,gpu-p3dn24xlarge,gpu Weight=1000 Gres=gpu:v100:8
NodeName=gpu-st-gpu-g38xlarge-[1-1] CPUs=16 RealMemory=248000 State=CLOUD Feature=g3.8xlarge,gpu,gpu-g38xlarge,static Weight=1 Gres=gpu:m60:2
NodeName=gpu-dy-gpu-g38xlarge-[1-4] CPUs=16 RealMemory=248000 State=CLOUD Feature=dynamic,g3.8xlarge,gpu,gpu-g38xlarge Weight=1000 Gres=gpu:m60:2
NodeName=gpu-dy-gpu-p3dn24xlarge-[1-10] CPUs=48 RealMemory=707788 State=CLOUD Feature=dynamic,gpu,gpu-p3dn24xlarge,p3dn.24xlarge Weight=1000 Gres=gpu:v100:8

NodeSet=gpu_nodes Nodes=gpu-st-gpu-g38xlarge-[1-1],gpu-dy-gpu-g38xlarge-[1-4],gpu-dy-gpu-p3dn24xlarge-[1-10]
PartitionName=gpu Nodes=gpu_nodes MaxTime=INFINITE State=UP
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# This file is automatically generated by pcluster

NodeName=multiple_spot-st-multiplespot-1-[1-5] CPUs=2 RealMemory=7296 State=CLOUD Feature=static,c4.xlarge,multiplespot-1 Weight=1
NodeName=multiple_spot-dy-multiplespot-1-[1-5] CPUs=2 RealMemory=7296 State=CLOUD Feature=dynamic,c4.xlarge,multiplespot-1 Weight=1000
NodeName=multiple_spot-st-multiplespot-2-[1-5] CPUs=4 RealMemory=15564 State=CLOUD Feature=static,c5.2xlarge,multiplespot-2 Weight=1
NodeName=multiple_spot-st-multiplespot-1-[1-5] CPUs=2 RealMemory=7296 State=CLOUD Feature=c4.xlarge,multiplespot-1,static Weight=1
NodeName=multiple_spot-dy-multiplespot-1-[1-5] CPUs=2 RealMemory=7296 State=CLOUD Feature=c4.xlarge,dynamic,multiplespot-1 Weight=1000
NodeName=multiple_spot-st-multiplespot-2-[1-5] CPUs=4 RealMemory=15564 State=CLOUD Feature=c5.2xlarge,multiplespot-2,static Weight=1

NodeSet=multiple_spot_nodes Nodes=multiple_spot-st-multiplespot-1-[1-5],multiple_spot-dy-multiplespot-1-[1-5],multiple_spot-st-multiplespot-2-[1-5]
PartitionName=multiple_spot Nodes=multiple_spot_nodes MaxTime=INFINITE State=UP Default=YES
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# This file is automatically generated by pcluster

NodeName=multiple_spot-st-multiplespot-1-[1-5] CPUs=2 RealMemory=6912 State=CLOUD Feature=static,c4.xlarge,multiplespot-1 Weight=1
NodeName=multiple_spot-dy-multiplespot-1-[1-5] CPUs=2 RealMemory=6912 State=CLOUD Feature=dynamic,c4.xlarge,multiplespot-1 Weight=1000
NodeName=multiple_spot-st-multiplespot-2-[1-5] CPUs=4 RealMemory=13000 State=CLOUD Feature=static,c5.2xlarge,multiplespot-2 Weight=1
NodeName=multiple_spot-st-multiplespot-1-[1-5] CPUs=2 RealMemory=6912 State=CLOUD Feature=c4.xlarge,multiplespot-1,static Weight=1
NodeName=multiple_spot-dy-multiplespot-1-[1-5] CPUs=2 RealMemory=6912 State=CLOUD Feature=c4.xlarge,dynamic,multiplespot-1 Weight=1000
NodeName=multiple_spot-st-multiplespot-2-[1-5] CPUs=4 RealMemory=13000 State=CLOUD Feature=c5.2xlarge,multiplespot-2,static Weight=1

NodeSet=multiple_spot_nodes Nodes=multiple_spot-st-multiplespot-1-[1-5],multiple_spot-dy-multiplespot-1-[1-5],multiple_spot-st-multiplespot-2-[1-5]
PartitionName=multiple_spot Nodes=multiple_spot_nodes MaxTime=INFINITE State=UP Default=YES
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# This file is automatically generated by pcluster

NodeName=efa-st-efa-c5n-[1-1] CPUs=36 RealMemory=186777 State=CLOUD Feature=static,c5n.18xlarge,efa-c5n,efa Weight=1
NodeName=efa-dy-efa-c5n-[1-4] CPUs=36 RealMemory=186777 State=CLOUD Feature=dynamic,c5n.18xlarge,efa-c5n,efa Weight=1000
NodeName=efa-st-efa-c5n-[1-1] CPUs=36 RealMemory=186777 State=CLOUD Feature=c5n.18xlarge,efa,efa-c5n,static Weight=1
NodeName=efa-dy-efa-c5n-[1-4] CPUs=36 RealMemory=186777 State=CLOUD Feature=c5n.18xlarge,dynamic,efa,efa-c5n Weight=1000

NodeSet=efa_nodes Nodes=efa-st-efa-c5n-[1-1],efa-dy-efa-c5n-[1-4]
PartitionName=efa Nodes=efa_nodes MaxTime=INFINITE State=UP
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# This file is automatically generated by pcluster

NodeName=gpu-st-gpu-g38xlarge-[1-1] CPUs=16 RealMemory=237363 State=CLOUD Feature=static,g3.8xlarge,gpu-g38xlarge,gpu Weight=1 Gres=gpu:m60:2
NodeName=gpu-dy-gpu-g38xlarge-[1-4] CPUs=16 RealMemory=237363 State=CLOUD Feature=dynamic,g3.8xlarge,gpu-g38xlarge,gpu Weight=1000 Gres=gpu:m60:2
NodeName=gpu-dy-gpu-p3dn24xlarge-[1-10] CPUs=48 RealMemory=747110 State=CLOUD Feature=dynamic,p3dn.24xlarge,gpu-p3dn24xlarge,gpu Weight=1000 Gres=gpu:v100:8
NodeName=gpu-st-gpu-g38xlarge-[1-1] CPUs=16 RealMemory=237363 State=CLOUD Feature=g3.8xlarge,gpu,gpu-g38xlarge,static Weight=1 Gres=gpu:m60:2
NodeName=gpu-dy-gpu-g38xlarge-[1-4] CPUs=16 RealMemory=237363 State=CLOUD Feature=dynamic,g3.8xlarge,gpu,gpu-g38xlarge Weight=1000 Gres=gpu:m60:2
NodeName=gpu-dy-gpu-p3dn24xlarge-[1-10] CPUs=48 RealMemory=747110 State=CLOUD Feature=dynamic,gpu,gpu-p3dn24xlarge,p3dn.24xlarge Weight=1000 Gres=gpu:v100:8

NodeSet=gpu_nodes Nodes=gpu-st-gpu-g38xlarge-[1-1],gpu-dy-gpu-g38xlarge-[1-4],gpu-dy-gpu-p3dn24xlarge-[1-10]
PartitionName=gpu Nodes=gpu_nodes MaxTime=INFINITE State=UP
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# This file is automatically generated by pcluster

NodeName=gpu-st-gpu-g38xlarge-[1-1] CPUs=16 RealMemory=237363 State=CLOUD Feature=static,g3.8xlarge,gpu-g38xlarge,gpu Weight=1
NodeName=gpu-dy-gpu-g38xlarge-[1-4] CPUs=16 RealMemory=237363 State=CLOUD Feature=dynamic,g3.8xlarge,gpu-g38xlarge,gpu Weight=1000
NodeName=gpu-dy-gpu-p3dn24xlarge-[1-10] CPUs=48 RealMemory=747110 State=CLOUD Feature=dynamic,p3dn.24xlarge,gpu-p3dn24xlarge,gpu Weight=1000
NodeName=gpu-st-gpu-g38xlarge-[1-1] CPUs=16 RealMemory=237363 State=CLOUD Feature=g3.8xlarge,gpu,gpu-g38xlarge,static Weight=1
NodeName=gpu-dy-gpu-g38xlarge-[1-4] CPUs=16 RealMemory=237363 State=CLOUD Feature=dynamic,g3.8xlarge,gpu,gpu-g38xlarge Weight=1000
NodeName=gpu-dy-gpu-p3dn24xlarge-[1-10] CPUs=48 RealMemory=747110 State=CLOUD Feature=dynamic,gpu,gpu-p3dn24xlarge,p3dn.24xlarge Weight=1000

NodeSet=gpu_nodes Nodes=gpu-st-gpu-g38xlarge-[1-1],gpu-dy-gpu-g38xlarge-[1-4],gpu-dy-gpu-p3dn24xlarge-[1-10]
PartitionName=gpu Nodes=gpu_nodes MaxTime=INFINITE State=UP
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# This file is automatically generated by pcluster

NodeName=multiple_spot-st-multiplespot-1-[1-5] CPUs=2 RealMemory=7296 State=CLOUD Feature=static,c4.xlarge,multiplespot-1 Weight=1
NodeName=multiple_spot-dy-multiplespot-1-[1-5] CPUs=2 RealMemory=7296 State=CLOUD Feature=dynamic,c4.xlarge,multiplespot-1 Weight=1000
NodeName=multiple_spot-st-multiplespot-2-[1-5] CPUs=4 RealMemory=15564 State=CLOUD Feature=static,c5.2xlarge,multiplespot-2 Weight=1
NodeName=multiple_spot-st-multiplespot-1-[1-5] CPUs=2 RealMemory=7296 State=CLOUD Feature=c4.xlarge,multiplespot-1,static Weight=1
NodeName=multiple_spot-dy-multiplespot-1-[1-5] CPUs=2 RealMemory=7296 State=CLOUD Feature=c4.xlarge,dynamic,multiplespot-1 Weight=1000
NodeName=multiple_spot-st-multiplespot-2-[1-5] CPUs=4 RealMemory=15564 State=CLOUD Feature=c5.2xlarge,multiplespot-2,static Weight=1

NodeSet=multiple_spot_nodes Nodes=multiple_spot-st-multiplespot-1-[1-5],multiple_spot-dy-multiplespot-1-[1-5],multiple_spot-st-multiplespot-2-[1-5]
PartitionName=multiple_spot Nodes=multiple_spot_nodes MaxTime=INFINITE State=UP Default=YES
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# This file is automatically generated by pcluster

NodeName=efa-st-efa-c5n-[1-1] CPUs=36 RealMemory=186777 State=CLOUD Feature=c5n.18xlarge,efa,efa-c5n,static Weight=1 CustomEfaComputeParam=unique_efa_compute_value OtherEfaComputeParam=second_efa_compute_value
NodeName=efa-dy-efa-c5n-[1-4] CPUs=36 RealMemory=186777 State=CLOUD Feature=c5n.18xlarge,dynamic,efa,efa-c5n Weight=1000 CustomEfaComputeParam=unique_efa_compute_value OtherEfaComputeParam=second_efa_compute_value

NodeSet=efa_nodes Nodes=efa-st-efa-c5n-[1-1],efa-dy-efa-c5n-[1-4]
PartitionName=efa Nodes=efa_nodes MaxTime=INFINITE State=UP CustomEfaParam=unique_efa_value OtherEfaParam=second_efa_value
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# This file is automatically generated by pcluster

NodeName=gpu-st-gpu-g38xlarge-[1-1] CPUs=32 RealMemory=237363 State=CLOUD Feature=g3.8xlarge,gpu,gpu-g38xlarge,myfeat-gpu,static Weight=1 Gres=gpu:m60:2 CustomNvidiaParam=nvidia_setting CustomAmdParam=amd_setting CustomIntelParam=intel_setting
NodeName=gpu-dy-gpu-g38xlarge-[1-4] CPUs=32 RealMemory=237363 State=CLOUD Feature=dynamic,g3.8xlarge,gpu,gpu-g38xlarge,myfeat-gpu Weight=1000 Gres=gpu:m60:2 CustomNvidiaParam=nvidia_setting CustomAmdParam=amd_setting CustomIntelParam=intel_setting
NodeName=gpu-dy-gpu-p3dn24xlarge-[1-10] CPUs=96 RealMemory=747110 State=CLOUD Feature=dynamic,gpu,gpu-p3dn24xlarge,p3dn.24xlarge Weight=1000 Gres=gpu:v100:8

NodeSet=gpu_nodes Nodes=gpu-st-gpu-g38xlarge-[1-1],gpu-dy-gpu-g38xlarge-[1-4],gpu-dy-gpu-p3dn24xlarge-[1-10]
PartitionName=gpu Nodes=gpu_nodes MaxTime=INFINITE State=UP CustomParam=unique_value OtherParam=second_value TreeAsThird=3
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# This file is automatically generated by pcluster

NodeName=multiple_spot-st-multiplespot-1-[1-5] CPUs=4 RealMemory=7296 State=CLOUD Feature=c4.xlarge,multiplespot-1,myfeat1,qwerty2,static Weight=1 CustomComputeParam=unique_compute_value OtherComputeParam=second_compute_value
NodeName=multiple_spot-dy-multiplespot-1-[1-5] CPUs=4 RealMemory=7296 State=CLOUD Feature=c4.xlarge,dynamic,multiplespot-1,myfeat1,qwerty2 Weight=1000 CustomComputeParam=unique_compute_value OtherComputeParam=second_compute_value
NodeName=multiple_spot-st-multiplespot-2-[1-5] CPUs=4 RealMemory=15564 State=CLOUD Feature=c5.2xlarge,multiplespot-2,static Weight=1

NodeSet=multiple_spot_nodes Nodes=multiple_spot-st-multiplespot-1-[1-5],multiple_spot-dy-multiplespot-1-[1-5],multiple_spot-st-multiplespot-2-[1-5]
PartitionName=multiple_spot Nodes=multiple_spot_nodes MaxTime=INFINITE State=UP Default=YES CustomQueueParam=unique_queue_value OtherQueueParam=second_queue_value
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
Scheduling:
SlurmQueues:
- Name: multiple_spot
CustomSlurmSettings:
CustomQueueParam: unique_queue_value
OtherQueueParam: second_queue_value
CapacityType: SPOT
ComputeResources:
- Name: multiplespot-1
DisableSimultaneousMultithreading: false
Efa:
Enabled: false
GdrSupport: false
CustomSlurmSettings:
CustomComputeParam: unique_compute_value
OtherComputeParam: second_compute_value
Feature: myfeat1,qwerty2,gpu
InstanceType: c4.xlarge
MaxCount: 10
MinCount: 5
StaticNodePriority: 1
DynamicNodePriority: 1000
- DisableSimultaneousMultithreading: true
Efa:
Enabled: false
GdrSupport: false
InstanceType: c5.2xlarge
MaxCount: 5
MinCount: 5
Name: multiplespot-2
StaticNodePriority: 1
DynamicNodePriority: 1000
- Name: efa
CapacityType: ONDEMAND
CustomSlurmSettings:
CustomEfaParam: unique_efa_value
OtherEfaParam: second_efa_value
ComputeResources:
- Name: efa-c5n
CustomSlurmSettings:
CustomEfaComputeParam: unique_efa_compute_value
OtherEfaComputeParam: second_efa_compute_value
DisableSimultaneousMultithreading: true
Efa:
Enabled: true
GdrSupport: false
InstanceType: c5n.18xlarge
MaxCount: 5
MinCount: 1
StaticNodePriority: 1
DynamicNodePriority: 1000
ComputeSettings: null
CustomActions: null
- Name: gpu
CapacityType: ONDEMAND
CustomSlurmSettings:
CustomParam: unique_value
OtherParam: second_value
TreeAsThird: 3
ComputeResources:
- Name: gpu-g38xlarge
DisableSimultaneousMultithreading: false
Efa:
Enabled: false
GdrSupport: false
CustomSlurmSettings:
CustomNvidiaParam: nvidia_setting
CustomAmdParam: amd_setting
CustomIntelParam: intel_setting
Feature: myfeat-gpu
InstanceType: g3.8xlarge
MaxCount: 5
MinCount: 1
StaticNodePriority: 1
DynamicNodePriority: 1000
- Name: gpu-p3dn24xlarge
DisableSimultaneousMultithreading: false
Efa:
Enabled: false
GdrSupport: false
InstanceType: p3dn.24xlarge
MaxCount: 10
MinCount: 0
StaticNodePriority: 1
DynamicNodePriority: 1000
ComputeSettings: null
CustomActions: null
Scheduler: slurm
SlurmSettings:
ScaledownIdletime: 10
EnableMemoryBasedScheduling: false
Database: null
ExternalSlurmdbd: null
Loading