Results are presented on the effectiveness of several algorithms for partitioning graphs with weighted nodes and edges. Such graphs can represent a number of interesting program structures, such as processes using message passing or dataflow graphs and other distributed software. The graph partitions can be used in software tools to control the allocation of program units to distributed processes in ways which minimize communication cost, completion time or utilization. It is shown that, in situations in which a good partition is crucial, simulated annealing is the most effective algorithm. It is, however, an expensive algorithm to run, and when this is important good results can still be obtained by using a variant of a greedy algorithm. A number of other algorithms that can be useful in particular situations are described. Those can be of practical use to distributed system designers
Published in:
Computers and Communications, 1988. Conference Proceedings., Seventh Annual International Phoenix Conference on
Date of Conference: 16-18 Mar 1988