To speedup the diffusion algorithm,
Horton [41] suggested a multilevel diffusion method.
The processor graph was
bisected and the load imbalance between the two subgraphs
was determined and transferred.
This process was repeated recursively until the subgraphs
could not be bisected any more. The advantage of the algorithm is that it is guaranteed to converge
in bisections, and the final load will be almost exactly
balanced even if the loads are integers.
However, because it is not always possible to bisect a connected graph
into two connected subgraphs,
it was not clear from the paper how to proceed for such a case.
Connectivity can of course be restored by
adding new edges to a disconnected subgraph. However this
is equivalent to moving data between non-neighboring processors and
should be avoided.