Skip to content

Commit 597d260

Browse files
committed
#558: memory: add option to disable sub-clustering
1 parent c824fa3 commit 597d260

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

src/lbaf/Execution/lbsClusteringTransferStrategy.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ def __init__(self, criterion, parameters: dict, lgr: Logger):
6868

6969
# Determine whether subclustering is performed immediately after swapping
7070
self.__separate_subclustering = parameters.get("separate_subclustering", False)
71+
self.__disable_subclustering = parameters.get("subclustering_disabled", False)
7172
self._logger.info(
7273
f"Enter subclustering immediately after cluster swapping: {self.__separate_subclustering}")
7374

@@ -279,15 +280,16 @@ def execute(self, known_peers, phase: Phase, ave_load: float, max_load: float):
279280
self.__n_sub_skipped += 1
280281
continue
281282

282-
# Perform feasible subcluster swaps from given rank to possible targets
283-
self.__transfer_subclusters(phase, r_src, targets, ave_load, max_load)
283+
if not self.__disable_subclustering:
284+
# Perform feasible subcluster swaps from given rank to possible targets
285+
self.__transfer_subclusters(phase, r_src, targets, ave_load, max_load)
284286

285287
# Report on new load and exit from rank
286288
self._logger.debug(
287289
f"Rank {r_src.get_id()} load: {r_src.get_load()} after {self._n_transfers} object transfers")
288290

289291
# Perform subclustering when it was not previously done
290-
if self.__separate_subclustering:
292+
if self.__separate_subclustering and not self.__disable_subclustering:
291293
# In non-deterministic case skip subclustering when swaps passed
292294
if self.__n_swaps and not self._deterministic_transfer:
293295
self.__n_sub_skipped += len(rank_targets)

src/lbaf/IO/lbsConfigurationValidator.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ def __init__(self, config_to_validate: dict, logger: Logger):
202202
str,
203203
lambda e: e in ALLOWED_TRANSFER_STRATEGIES,
204204
error=f"{get_error_message(ALLOWED_TRANSFER_STRATEGIES)} must be chosen"),
205+
Optional("subclustering_disabled"): bool,
205206
Optional("subclustering_threshold"): And(
206207
float,
207208
lambda x: x >= 0.0,

0 commit comments

Comments
 (0)