We are planning on changing the way load balancing is implemented in Charm++. The main reasons for these changes are to allow for more sophisticated load balancing scenarios such as node level load balancing, improved performance, and cleanup of years of accumulated cruft. These changes will most likely be in the Charm++ 7.0 release.
Part of this effort involves removing many of the current load balancers and load balancing strategies, instead focusing on a smaller set of well maintained and generally applicable load balancers.
We intend to keep at least the following set:
- DistributedLB (possibly renaming to GrapevineLB or other name)
- RefineLB (and TempAwareRefineLB variant)
- RotateLB (useful for diagnostic purposes)
- DummyLB (useful for diagnostic purposes)
NOTE: hierarchical load balancing will be a major part of the new framework. It is designed from scratch and the plan is to ultimately replace CentralLB and Hybrid(Base)LB. Many of the common strategies (greedy(refine), refine, etc) will be components of the new hierarchical load balancer.
Please discuss here if you need any of the other existing load balancers or functionality, and if possible explain your use case, and pros and cons of those balancers or lb strategies.