Adaptive load balancing in short range particle simulations
In short range particle simulations, efficient parallel execution on multiple CPUs is typically achieved by the use of spatial decomposition of the total simulation volume. A straightforward subdivision in equal sized domains blocks on a Cartesian grid is the most common strategy that scales excellent with an increasing number of CPUs as long as the amount of work in each domain is about the same. In case of a highly inhomogeneous distribution, the efficiency suffers as the simulation runtime is bounded by the CPU having the highest load, while other CPUs run idle.
This project aims to develop and implement a dynamic load balancing scheme that redistributes work during the simulation by modifying the shape of subdomains to achieve a more equal balance and reduce the total simulation time. The method is suited to be integrated into existing codes, since it is designed in such a way that common data structures and communication routines do not have to be changed.