Skip to content

Commit 7116387

Browse files
authored
Merge pull request GoogleCloudPlatform#4486 from alyssa-sm/slice-exclusivelessness
Ignore exclusive jobs for slices
2 parents 8f12546 + 08ae85a commit 7116387

2 files changed

Lines changed: 11 additions & 6 deletions

File tree

  • community/modules/scheduler/schedmd-slurm-gcp-v6-controller/modules/slurm_files/scripts

community/modules/scheduler/schedmd-slurm-gcp-v6-controller/modules/slurm_files/scripts/resume.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -507,13 +507,17 @@ def create_placements(nodes: List[str], excl_job_id:Optional[int], lkp: util.Loo
507507
def _allocate_nodes_to_placements(nodes: List[str], excl_job_id:Optional[int], lkp: util.Lookup) -> List[PlacementAndNodes]:
508508
# canned result for no placement policies created
509509
no_pp = [PlacementAndNodes(placement=None, nodes=nodes)]
510-
511-
if excl_job_id and len(nodes) < 2:
512-
return no_pp # don't create placement_policy for just one node
513-
510+
514511
model = nodes[0]
515512
nodeset = lkp.node_nodeset(model)
516513

514+
is_slice = bool(getattr(nodeset, 'accelerator_topology', None))
515+
516+
excl_job_placement = (excl_job_id is not None) and (not is_slice)
517+
518+
if excl_job_placement and len(nodes) < 2:
519+
return no_pp # don't create placement_policy for just one node
520+
517521
if lkp.is_flex_node(model):
518522
return no_pp # TODO(FLEX): Add support for workload policies
519523
if lkp.node_is_tpu(model):
@@ -524,7 +528,8 @@ def _allocate_nodes_to_placements(nodes: List[str], excl_job_id:Optional[int], l
524528
max_count = calculate_chunk_size(nodeset, lkp)
525529

526530
name_prefix = f"{lkp.cfg.slurm_cluster_name}-slurmgcp-managed-{nodeset.nodeset_name}"
527-
if excl_job_id: # simply chunk given nodes by max size of placement
531+
532+
if excl_job_placement: # simply chunk given nodes by max size of placement
528533
return [
529534
PlacementAndNodes(placement=f"{name_prefix}-{excl_job_id}-{i}", nodes=chunk)
530535
for i, chunk in enumerate(chunked(nodes, n=max_count))

community/modules/scheduler/schedmd-slurm-gcp-v6-controller/modules/slurm_files/scripts/util.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1664,7 +1664,7 @@ def node_region(self, node_name=None):
16641664

16651665
def nodeset_accelerator_topology(self, nodeset_name: str) -> Optional[str]:
16661666
if not self.nodeset_is_tpu(nodeset_name):
1667-
return self.cfg.nodeset[nodeset_name].get('accelerator_topology')
1667+
return getattr(self.cfg.nodeset[nodeset_name], 'accelerator_topology', None)
16681668
return None
16691669

16701670
def nodeset_prefix(self, nodeset_name):

0 commit comments

Comments
 (0)