Dynamic Load Balancing for Parallel Adaptive Mesh Refinement

Adaptive mesh refinement is a key problem in large-scale numerical calculations. The need of adaptive mesh refinement could introduce load imbalance among processors, where the load measures the amount of work required by refinement itself as well as by numerical calculations thereafter. We present a dynamic load balancing algorithm to ensure that the work load are balanced while the communication overhead is minimized. The main ingredient of our method is a technique for the estimation of the size and the element distribution of the refined mesh before we actually generate the refined mesh. Base on this estimation, we can reduce the dynamic load balancing problem to a collection of static partitioning problems, one for each processor. In parallel each processor could then locally apply a static partitioning algorithm to generate the basic units of submeshes for load rebalancing. We then model the communication cost of moving submeshes by a condensed and much smaller subdomain graph, and apply a static partitioning algorithm to generate the final partition.