A Solution for the Bandwidth Optimization Problem with 2 Stations Rahul Bijlani, Louis Deaett and Maksim Orlovich
Definitions A single memory access is called a 'Component'. A 'Job' is a subset of the set of Components. A 'Station' is a subset of the set of Components. –o A non-empty set C containing n c Components, –o A set J containing n j Jobs, –o A partition of J into two disjoint subsets J 1 and J 2, –o And a set S containing exactly two Stations, S 1 and S 2,
Model Given (J,S,C) as described earlier, one may construct a simple undirected graph, with each vertex representing one of the elements of J, S or C – i.e. with vertices for jobs, stations and components. In this graph, each edge is constructed to connect a station or a job with a component it contains; for example, given a station {A,B,C}, one introduces edges –{A, {A,B,C}}, {B, {A,B,C}} and {C, {A,B,C}}
Example For example, consider: BFH CDG BCD BGH BCG FGH
Conversion into our Model F GH D BC BCG BFH BCD CDG BGH FGH
The Solution using our Model Note that without the loss of generality, we may assume that there are no two identical Jobs. Consider the significance of connectedness in the model: –If a Job is path-connected to a Station or another Job, they share at least one Component in direct or indirect form. –On the other hand, if there is no path between either of the Stations and a Job, then they share absolutely no Components in common.
Jobs that are disconnected from Stations For starters, we can merge all the ‘disconnected’ Jobs described above with the first Station. One can quickly search for these using DFS/Mark or BFS/Mark algorithms. If this leaves S 1 and S 2 disconnected, we are done.
Jobs that are connected to at least one Station Now consider the significance of a vertex cut of the graph using only Component Vertices, with S 1 and S 2 as the Source and the Sink respectively. –The Jobs are distributed to the Stations –Many of the Component vertices that were removed were used by Jobs/Stations on each side of the partition, so removing them in effect means that the Component the represent must be duplicated in both partitions.
Example Component removal – original graph F GH D BC BCG BFH BCD CDG BGH FGH
Example Component removal – after removing B F GH D C BCG BFH BCD CDG BGH FGH
Implication of a Minimal Vertex Cut Notice that if the removed vertex was not shared among the two sides of the partition, it didn’t really have to be removed. Hence, one could easily construct a smaller cut by just removing the vertices that need to be duplicated. But this means that in order to minimize the duplication, one needs to minimize the no. of vertices in the cut.
Reduction of the Bandwidth Optimization Problem T hus, the Bandwidth Optimization Problem is reducible to calculating a minimum vertex cut of the model graph over C, the set of Component vertices, with S 1 and S 2, the two Stations, as the two distinguished vertices that are to be in the two partitions of the graph.
Example Minimum Vertex Cut BCG BFH BCD CDG BGH FGH C D H F
Example Result Station 1: FGH –BFH –BGH BFGH Station 2: BCD –CDG –BCG BCDG
Reduction of Vertex Cut Problem to Edge Cut 1. Copy over all the vertices 2. For each edge of the graph, create two directed edges in both directions of infinite capacity. Note that this does not change connectivity. 3. Convert each of the Component Nodes into an edge of capacity one, connecting the edges incoming into the original vertex into the tails of the node, and those outgoing into the head.
Execution of a Min Edge Cut with S 1 as Source and S 2 as Sink The cost of the cut will be exactly equal to the number of vertices it corresponds to, since each of the Component Vertex edges has cost 1, so minimizing the number of vertices would minimize the number of vertices cut in the original graph.
A Solution for the Bandwidth Optimization Problem with 2 Stations Rahul Bijlani, Louis Deaett and Maksim Orlovich