Partitioning of unstructured meshes for load balancing

Abstract
Many large‐scale engineering and scientific calculations involve repeated updating of variables on an unstructured mesh. To do these types of computations on distributed memory parallel computers, it is necessary to partition the mesh among the processors so that the load balance is maximized and interprocessor communication time is minimized. This can be approximated by the problem of partitioning a graph so as to obtain a minimum cut, a well‐studied combinatorial optimization problem. Graph partitioning is NP complete, so for real world applications one resorts to heuristics, i.e. algorithms that give good but not necessarily optimum solutions. These algorithms include recursive spectral bisection, local search methods such as Kernighan‐Lin, and more general purpose methods such as simulated annealing. We show that a general procedure enables us to combine simulating annealing with Kernighan‐Lin. The resulting algorithm is both very fast and extremely effective.