Broader dynamic load balancing for hybrid/multi-level parallel programming models. (11th November 2005) - Mohamed, Ahmed S.
Recently, Hybrid/Multi-Level Parallel Programming Models have begun gaining lots of momentum basically because they have proven to provide better scalability, speedup and utilisation than any single parallel programming model alone. In such models, load balancing should not only mean balancing the computational loads (as it has always been perceived), but also balancing I/O imbalance as well as synchronisation imbalance. In this paper, we propose a broader generic application/language/model independent multi-agent framework for dynamic load balancing. It takes most of the load-balancing burden away from programmers. It is not a library but a runtime support system that is not hardwired to the parallel applications. The framework is intended to handle varying levels of load changes in computations, I/O and/or synchronisation throughout the application run and it is an open architecture that currently supports four multi-level parallel programming models. It has a clean interface to the application, runs in parallel and provides additional functionality such as determination of when to load balance, and provide interface to end users. The proposed framework has been deployed in four hybrid/multi-level parallel programming models and its capabilities of issuing corrective actions against emerging imbalances were tested in the context of an adaptive mesh refinement application. Experimental results show that the framework is effective in monitoring, tuning and rebalancing emerging computational, I/O and synchronisation sources of load imbalance.