The locality and load balance problem for many parallel applications comes down to a problem of graph partitioning. A good partition will simultaneously balance the number (or weight) of nodes in each partition and minimize the number (or weight) of the edges that cross partitions. Computing an optimal partition is NP-Complete, but there are several good heuristics that do well in practice. There are two different partitioning problems, depending on whether one is given spatial coordinates for the graph. In this lecture, we start with coordinate-based methods, and move on to techniques that work without coordinates, if time permits.
These notes steal liberally from lectures by previous CS267 instructors (in particular, Jim Demmel).
PowerPoint, Postscript, PDF