DARMA-tasking / LB-analysis-framework

Analysis framework for exploring, testing, and comparing load balancing strategies
Other
3 stars 1 forks source link

#428: allow swaps of empty clusters from target #433

Closed ppebay closed 11 months ago

ppebay commented 12 months ago

Fixes #428

ppebay commented 12 months ago

Key findings:

As a result, the results of the call to __cluster_objects() on the destination rank must always be “enriched” with the notional empty cluster, denoted as: None: []

ppebay commented 12 months ago

Example of 16 iterations of the too-complex case, in non-deterministic mode:

out_00 out_16

N.B.: load imbalance continues to decrease and is not blocked at that level, past iteration 16.

ppebay commented 12 months ago

Verifying that has no negative impact on other, previously well resolved, cases: output_file_00 output_file_08

ppebay commented 12 months ago

@nlslatt should I nonetheless merge, while you are further investigating?

nlslatt commented 12 months ago

@nlslatt should I nonetheless merge, while you are further investigating?

No, see Slack.

ppebay commented 12 months ago

Results with new execution logic (now only one target allowed to be picked but with an arbitrary numbers of swaps):

Screen Shot 2023-09-09 at 4 34 19 PM

Much better results and with fewer iterations

ppebay commented 12 months ago

Further improved strategy, both for execution speed and load imbalance: out_08

ppebay commented 12 months ago

Results also improved for the challenging_toy_hundreds_tasks case (also in non-deterministic mode):

output_file_00 output_file_08

nlslatt commented 11 months ago

@ppebay This is working better for me as well

ppebay commented 11 months ago

Thanks @nlslatt @lifflander , can we merge this PR?