Distributed Application Partitioning ECE 556 Final Project Brad Colvin
Problem Overview Optimally allocating the components of a distributed program over several machines. Communication between machines is assumed to be the major factor in application performance Can be represented by a graph NP-hard for case of 3 or more terminals Can be thought of as a partitioning problem
Collapse the graph Given G = {N, E, M} N is the set of Nodes E is the set of Edges M is the set of machine nodes
Dominant Edge Take node n and its heaviest edge e Edges a1,a2,…ar with opposite end nodes not in M Edges b1,b2,…bk with opposite end nodes in M If w(e) >= Sum(w(ai)) + Max(w(b1),…,w(bk)) Then the min-cut does not contain e So e can be collapsed
Machine Cut Let machine cut Mi be the set of all edges between a machine mi and non-machine nodes N Let Wi be the sum of the weight of all edges in the machine cut Mi Wi’s are sorted so W1>=W2>=… Any edge that has a weight greater than W2 cannot be part of the min-cut
Zeroing Assume that node n has edges to each of the m machines in M with weights w1<=w2<=…<=wm Reducing the weights of each of the m edges from n to machines M by w1 doesn’t change the assignment of nodes for the min-cut It reduces the cost of the minimum cut by (m-1)w1
Order of Application If the previous 3 techniques are repeatedly applied on a graph until none of them are applicable Then the resulting reduced graph is independent of the order of application of the techniques
Output List of nodes collapsed into each of the machine nodes Weight of edges connecting the machine nodes
Credits Main Paper: Graph Cutting Algorithms for Distributed Applications Partitioning Graphs from: Fast Optimally-Preserving Graph Reduction for Dynamics-Based Partitioning of Distributed Object Applications Authors: Karin Hogstedt, Doug Kimelman, VT Rajan, Tova Roth, and Mark Wegman