With the dawn of petascale, and with exascale in the near future, it has become significantly difficult to write parallel applications that fully exploit the processingpower, and scale to large systems. Load imbalance, both computationally and communication induced, presents itself as one of the important challenges in achieving scalability and high performance. Problem sizes and system sizes have become so large that manually handling the imbalance in dynamic applications, and finding an optimum distribution of load has become a herculean task. Charm++~\cite provides the user with a run time system thatperforms dynamic load balancing. To enable Charm++ to perform load balancing in an efficient manner, the user takes certain decisions such as when to loadbalance and which strategy to use, and informs the Charm++ run-time system ofthese decisions.Many a times, taking these important decisions involve handtuning each application by observing various runs of the application.In this thesis, a Meta-Balancer which relieves the user from the effort of making the load balancing related decisions, is presented. The Meta-Balancer is a part of the Charm++ load balancing framework. It identifies the characteristicsof the application, and based on the principle of persistence and the accruedinformation, makes load balancing related decisions. We study the performance of the Meta-Balancer in the context of leanmd mini application.We also evaluate the Meta-Balancer in the context of micro benchmarks such as kNeighbor and jacobi2D.We also present several new load balancing strategies, that have beenincorporated into Charm++, and study their impact on the performance of applications. These new strategies are: 1)RefineSwapLB, which is a refinement based load balancing strategy,2)CommAwareRefineLB, which is a communication aware refinement strategy,3)ScotchRefineLB, which is a refinement based graph partitioning strategy usingScotch, a graph partitioner, and 4) ZoltanLB, which is a multicast aware load balancing strategy using Zoltan, a hypergraph partitioner.
【 预 览 】
附件列表
Files
Size
Format
View
Meta-Balancer: automated load balancing based on application behavior