Method for automatic partitioning of node-weighted, edge-constrained graphs
First Claim
1. A method for partitioning a communication network into partitions, the method comprising:
- modeling the network as a graph comprising nodes which represent network devices and edges which represent links between the devices; and
automatically partitioning the graph;
and wherein the partitioning step includes a step of generating partitions such that links identified as weak links are not included within any one partition.
6 Assignments
0 Petitions
Accused Products
Abstract
According to an embodiment of the present invention, a method is provided for partitioning a network, comprising modeling the network as a graph comprising nodes which represent network devices, and edges which represent links between the devices, and automatically partitioning the graph into domains. One embodiment of the method includes identifying a number of anchor nodes in the graph and partitioning the domains around the anchor nodes such that each domain contains only one anchor node. Another embodiment of the method includes partitioning a graph without anchor nodes into a number of domains, and assigning controllers to each of the domains. Preferably, the method further includes assigning a weight to each node in the graph, and balancing the partitions as a function of the weight of each node in a respective partition.
167 Citations
29 Claims
-
1. A method for partitioning a communication network into partitions, the method comprising:
-
modeling the network as a graph comprising nodes which represent network devices and edges which represent links between the devices; and
automatically partitioning the graph;
and wherein the partitioning step includes a step of generating partitions such that links identified as weak links are not included within any one partition. - View Dependent Claims (2)
-
-
3. A method for partitioning a communication network into partitions, the method comprising:
-
modeling the network as a graph comprising nodes which represent network devices and edges which represent links between the devices;
automatically partitioning the graph; and
assigning a weight to each node in the graph;
and wherein the partitioning step includes a step of balancing the combined weights of the nodes in each partition. - View Dependent Claims (4, 5)
-
-
6. A method for partitioning a communication network, the method comprising:
-
modeling the network as a graph comprising nodes which represent network devices and edges which represent links between the devices;
automatically partitioning the graph;
wherein the partitioning step comprises;
a step of identifying supernodes in the graph; and
a step of combining supernodes which have at least two nodes in common into a cluster. - View Dependent Claims (7, 8, 9)
-
-
10. A domain partitioning engine comprising:
-
means for receiving, a representation of a graph comprising nodes and edges;
means for identifying a plurality of supernodes; and
means, responsive to the means for identifying, for automatically partitioning the graph into a number of domains, at least one of which comprises one or more of the plurality of supernodes. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
means for identifying a number of anchor nodes;
means for combining the supernodes into a number of clusters;
means for generating each of the number of clusters around each of said number of anchor nodes, such that each cluster includes only one anchor node; and
means for generating the number of domains from the clusters.
-
-
15. The domain partitioning engine of claim 14, further comprising means for balancing a weight of the graph between the number of domains.
-
16. The domain partitioning engine of claim 10, wherein the nodes represent switches in a computer network and the edges represent links between the switches.
-
17. The domain partitioning engine of claim 10, wherein the nodes represent components of a VLSI chip and the edges represent interconnections among the components.
-
18. The domain partitioning engine of claim 10, wherein the nodes represent tasks to be performed on a computer in a distributed computing system and the edges represent data dependencies among the tasks.
-
19. A method for using a computer to automatically partition a graph comprising a plurality of nodes interconnected by edges, the method comprising:
-
(a) identifying a plurality of supernodes, each supernode comprising one or more plurality of nodes;
(b) forming clusters including one or more of the identified supernodes; and
(c) forming partitions from the clusters. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28)
combining supernodes having two or more nodes in common into a cluster, wherein a cluster is a set of nodes in which each node in the set is linked to at least two other nodes in the set;
absorbing supernodes which share two or more nodes with a cluster into the cluster; and
separating clusters having a node in common by removing the common node from one of the clusters.
-
-
22. The method of claim 19, wherein each of the nodes includes a quantifiable characteristic, the method further comprising the steps of:
-
(d) determining a sum of the quantifiable characteristic for each cluster; and
(e) manipulating the clusters such that the sum of the quantifiable characteristic for each cluster falls within a range.
-
-
23. The method of claim 22, wherein, if the sum of a particular domain falls above the range, step (e) comprises steps of:
-
detecting an adjacent domain having a smaller sum; and
transferring a node from the particular domain to the domain having a smaller sum.
-
-
24. The method of claim 22, wherein, if the sum of a particular domain falls below the range, step (e) comprises the steps of:
-
detecting an adjacent domain having a greater sum; and
transferring a node from the domain having a greater sum to the particular domain.
-
-
25. The method of claim 19, wherein the nodes represent switches in a computer network and the edges represent links between the switches.
-
26. The method of claim 25, wherein each of the nodes includes a number of ports, the method further comprising the steps of:
-
(d) determining a sum of the number of ports in each cluster; and
(e) manipulating the clusters such that the sum of the ports of each cluster falls within a range.
-
-
27. The method of claim 19, wherein the nodes represent tasks to be performed on a computer in a distributed computing system and the edges represent dependencies among the tasks.
-
28. The method of claim 19, wherein the nodes represent components on a VLSI chip and the edges represent interconnections among the components.
-
29. A method of automatically partitioning a graph into domains, the graph having a plurality of nodes interconnected by a plurality of edges, the method comprising:
-
identifying a number of anchor nodes in the graph; and
combining the nodes into a number of control groups, which number is the same as the number of domains, such that each control group includes only one anchor node.
-
Specification