Closed nlslatt closed 11 months ago
Adding some desired features:
InformAndTransfer
algorithm (as it is iterative)execute()
:
# Perform requested number of load-balancing iterations
for i in range(self.__n_iterations):
print_function_statistics()
but only printed, so this should be modified to get the return value:
# Compute and report iteration work statistics
print_function_statistics(
self._rebalanced_phase.get_ranks(),
lambda x: self._work_model.compute(x), # pylint:disable=W0108:unnecessary-lam\
bda
f"iteration {i + 1} rank work",
self._logger)
"imbalance"
value in the returned dict can then be used -- but it's important to note that it will only make sense for when using a definition of work that contains is compatible: i.e., when taking communication into account, that is not the case as communications balance is not a desired outcome and we rather look at maximum work in this case.
Add an optional target imbalance threshold to the yaml file that can be used to conclude the iteration process in fewer iterations than requested iff the imbalance has been brought down below the threshold already.