780 likes | 974 Views
Link Reversal Algorithms. Jennifer L. Welch [Welch and Walter, 2012]. What is Link Reversal?. Distributed algorithm design technique Used in solutions for a variety of problems routing, leader election, mutual exclusion, scheduling, resource allocation,…
E N D
Link Reversal Algorithms Jennifer L. Welch [Welch and Walter, 2012]
What is Link Reversal? • Distributed algorithm design technique • Used in solutions for a variety of problems • routing, leader election, mutual exclusion, scheduling, resource allocation,… • Model problem as a directed graph and reverse the direction of links appropriately • Use local knowledge to decide which links to reverse
Outline • Routing in a Graph: Correctness • Routing in a Graph: Complexity • Routing and Leader Election in a Distributed System • Mutual Exclusion in a Distributed System • Scheduling in a Graph • Resource Allocation in a Distributed System
Routing [Gafni & Bertsekas 1981] • Undirected connected graph represents communication topology of a system • Unique destination node • Assign virtual directions to the graph edges (links) s.t. • if nodes forward messages over the links, they reach the destination • Directed version of the graph (orientation) must • be acyclic • have destination as only sink Thus every node has path to destination.
Routing Example D 3 1 2 4 5 6
Mending Routes • What happens if some edges go away? • Might need to change the virtual directions on some remaining edges (reverse some links) • More generally, starting with an arbitrary directed graph, each node should decide independently which of its incident links to reverse
Mending Routes Example D 3 1 2 4 5 6
Sinks • A vertex with no outgoing links is a sink. • The property of being a sink can be detected locally. • A sink can then reverse some incident links • Basis of several algorithms… sink
Full Reversal Routing Algorithm • Input: directed graph G with destination vertex D • Let S(G) be set of sinks in G other than D • while S(G) is nonempty do • reverse every link incident on a vertex in S(G) • G now refers to resulting directed graph
D D D 3 1 2 2 1 3 3 2 1 4 5 4 6 5 6 5 4 6 D D D 3 2 1 3 2 1 1 2 3 4 5 6 4 5 6 4 5 6 Full Reversal (FR) Routing Example
Why Does FR Terminate? • Suppose it does not. • Let W be vertices that take infinitely many steps. • Let X be vertices that take finitely many steps; includes D. • Consider neighboring nodes w in W, x in X. • Consider first step by w after last step by x: link is w g x and stays that way forever. • Then w cannot take any more steps, contradiction.
Why is FR Correct? • Assume input graph is acyclic. • Acyclicity is preserved at each iteration: • Any new cycle introduced must include a vertex that just took a step, but such a vertex is now a source (has no incoming links) • When FR terminates, no vertex, except possibly D, is a sink. • A DAG must have at least one sink: • if no sink, then a cycle can be constructed • Thus output graph is acyclic and D is the unique sink.
Pair Algorithm • Can implement FR by having each vertex v keep an ordered pair (c,v), the height (or vertex label) of vertex v • c is an integer counter that can be incremented • v is the id of vertex v • View link between v and u as being directed from vertex with larger height to vertex with smaller height (compare pairs lexicographically) • If v is a sink then v sets c to be 1 larger than maximum counter of all v’s neighbors
Pair Algorithm Example (1,0) 0 3 1 2 (0,1) (0,2) (2,3) (2,1)
Pair Algorithm Example (1,0) 0 3 1 2 (0,1) (0,2) (2,3) (2,1) (3,2)
Pair Algorithm Example (1,0) 0 3 1 2 (0,1) (0,2) (2,3) (2,1) (3,2)
Partial Reversal Routing Algorithm • Try to avoid repeated reversals of the same link. • Vertices keep track of which incident links have been reversed recently. • Link (u,v) is reversed by v iff the link has not been reversed by u since the last iteration in which v took a step.
D D D 3 1 2 2 1 3 3 2 1 4 5 4 6 5 6 5 4 6 D D D 3 2 1 3 2 1 1 2 3 4 5 6 4 5 6 4 5 6 Partial Reversal (PR) Routing Example
Why is PR Correct? • Termination can be proved similarly as for FR: difference is that it might take two steps by w after last step by x until link is w g x . • Preservation of acyclicity is more involved, deferred to later.
Triple Algorithm • Can implement PR by having each vertex v keep an ordered triple (a,b,v), the height (or vertex label) of vertex v • a and b are integer counters • v is the id of node v • View link between v and u as being directed from vertex with larger height to vertex with smaller height (compare triples lexicographically) • If v is a sink then v • sets a to be 1 greater than smallest a of all its neighbors • sets b to be 1 less than smallest b of all its neighbors with new value of a (if none, then leave b alone)
Triple Algorithm Example (0,1,0) 0 3 1 2 (0,0,1) (0,0,2) (0,2,3) (1,0,1)
Triple Algorithm Example (0,1,0) 0 3 1 2 (0,0,1) (0,0,2) (0,2,3) (1,0,1) (1,-1,2)
Triple Algorithm Example (0,1,0) 0 3 1 2 (0,0,1) (0,0,2) (0,2,3) (1,0,1) (1,-1,2)
General Vertex Label Algorithm • Generalization of Pair and Triple algorithms • Assign a label to each vertex s.t. • labels are from a totally ordered, countably infinite set • new label for a sink depends only on old labels for the sink and its neighbors • sequence of labels taken on by a vertex increases without bound • Can prove termination and acyclicity preservation, and thus correctness.
Binary Link Labels Routing [Charron-Bost et al. SPAA 2009] • Alternate way to implement and generalize FR and PR • Instead of unbounded vertex labels, apply binary link labels to input DAG • link directions are independent of labels (in contrast to algorithms using vertex labels) • Algorithm for a sink: • if at least one incident link is labeled 0, then reverse all incident links labeled 0 and flip labels on all incident links • if no incident link is labeled 0, then reverse all incident links but change no labels
Binary Link Labels Example 0 1 0 3 1 2 1 0
Binary Link Labels Example 0 1 0 3 1 2 1 0
Binary Link Labels Example 0 1 0 3 1 2 0 1
Why is BLL Correct? • Termination can be proved very similarly to termination for PR. • What about acyclicity preservation? Depends on initial labeling: 3 3 1 1 0 0 1 0 2 2 1 1 0 0 0 0
Conditions on Initial Labeling • All labels are the same • all 1’s => Full Reversal • all 0’s => Partial Reversal • Every vertex has all incoming links labeled the same (“uniform” labeling) • Both of the above are special cases of a more general condition that is necessary and sufficient for preserving acyclicity
What About Complexity? • Busch et al. (2003,2005) initiated study of the performance of link reversal routing • Work complexity of a vertex: number of steps taken by the vertex • Global work complexity: sum of work complexity of all vertices • Time complexity: number of iterations, assuming all sinks take a step in each iteration (“greedy” execution)
Worst-Case Work Complexity Bounds [Busch et al.] • bad vertex: has no (directed) path to destination • Pair algorithm (Full Reversal): • for every input, global work complexity is O(n2), where n is number of initial bad vertices • for every n, there exists an input with n bad vertices with global work complexity Ω(n2) • Triple algorithm (Partial Reversal): same as Pair algorithm
Exact Work Complexity Bounds • A more fine-grained question: Given any input graph and any vertex in that graph, exactly how many steps does that vertex take? • Busch et al. answered this question for FR. • Charron-Bost et al. answered this question for BLL (as long as labeling satisfies Acyclicity Condition): includes FR and PR.
Definitions [Charron-Bost et al. SPAA 2009] • Let X = <v1, v2, …, vk> be a chain in the labeled input DAG (series of vertices s.t. either (vi,vi+1) or (vi+1,vi) is a link). • r: number of links that are labeled 1 and rightway ((vi,vi+1) is a link) • s: number of occurrences of vertices s.t. the two adjacent links are incoming and labeled 0 • Res: 1 if last link in X is labeled 0 and rightway, else 0 • ω: equal to 2(r+s)+Res
Example of Definitions For chain <D,7,6,5>: r = 1, s = 0, Res = 1, ω = 3 For chain <D,1,2,3,4,5>: r = 2, s = 1, Res = 0, ω = 6 1 0 1 1 2 3 8 0 0 D 4 1 1 1 0 7 6 5
Outline of BLL Work Complexity • Claim 1: A step taken by v decreases the ω value of all chains from D to v by the same amount; steps taken by other vertices have no effect on the ω value of chains from D to v. • Claim 2: When algorithm terminates, at least one chain from D to v is the reverse of a path from v to D • value of ω for this chain is 0, since no right-way links • Thus number of steps by v is number required for the reverse of a D-to-v chain to become a path for the first time • Need to quantify how ωmin decreases when v takes a step (ωmin is min, over all chains X from D to v, of ω for X)
Grouping the Nodes Define • S as set of all sinks whose links are all labeled 0 • N as set of all nodes whose incoming links are all labeled 1 • O as all other nodes 0 groupS 1 0 1 groupN 1 0 0 groupO 1 0 0 1
Finishing BLL Work Complexity • Claim 3: Let X be a D-to-v chain. When v takes a step, • if v in S, then ω for X decreases by 1 and v moves to N • if v in N, then ω for X decreases by 2 and v stays in N • if v in O, then ω for X decreases by 1 and v stays in O • Theorem: Number of steps taken by v is • (ωmin+1)/2 if v in S initially • ωmin/2 if v in N initially • ωmin if v in O initially
Work Complexity for FR • Corollary: For FR (all 1’s labeling), work complexity of vertex v is minimum, over all chains from D to v, of r, number of links in the chain that are rightway (directed away from D). • Worst-case graph for global work complexity: D 1 2 … n • vertex i has work complexity i • global work complexity then is Θ(n2)
Work Complexity for PR • Corollary: for PR (all 0’s labeling), work complexity of vertex v is • min, over all D-to-v chains, of s + Res if v is a sink or a source • min, over all D-to-v chains, of 2s + Res if v is neither a sink nor a source • Worst-case graph for global work complexity: D 1 2 3 … n • work complexity of vertex i is Θ(i) • global work complexity is Θ(n2)
Comparing FR and PR • Looking at worst-case global work complexity shows no difference – both are quadratic in number of bad nodes • Can use game theory to show some meaningful differences (Charron-Bost et al. ALGOSENSORS 2009): • global work complexity of FR can be larger than optimal (w.r.t. all uniform labelings) by a factor of Θ(n) • global work complexity of PR is never more than twice the optimal • Another advantage of PR over FR: • In PR, if k links are removed, each bad vertex takes at most 2k steps • In FR, if 1 link is removed, a vertex might have to take n-1 steps
Time Complexity • Time complexity is number of iterations in greedy execution • Busch et al. observed that time complexity cannot exceed global work complexity • Thus O(n2) iterations for both FR and PR • Busch et al. also showed graphs on which FR and PR require Ω(n2) iterations • Charron-Bost et al. (2011) derived an exact formula for the last iteration in which any vertex takes a step in any graph for BLL…
FR Time Complexity Overview • Let Wv(t) be number of steps v has taken by iteration t • Identify a recurrence relation for Wv(t) based on understanding how nodes and their neighbors take turns being sinks • this recurrence is linear in the min-plus algebra • Thus the set of recurrences for all the vertices can be represented as a matrix • This matrix can be interpreted as the adjacency matrix of a graph H • Restate value of Wv(t) in terms of properties of paths in H • Derive a formula for time complexity of vertex v based on properties of paths in H • Translate previous formula into properties of original input graph
FR Time Complexity • Theorem: For every bad vertex v, termination time of v is 1 + max{len(X): X is chain ending at v with r = σv – 1} where σv is the work complexity of v • Worst-case graph for global time complexity: n n-1 D 1 2 n/2 n/2+3 vertex n/2 has work complexity n/2; consider chain that goes around the loop counter-clockwise n/2-1 times starting and ending at n/2: has r = n/2-1 and length Θ(n2) n/2+1 n/2+2
BLL Time Complexity • What about other link labelings? • Transform to FR! • In more detail: for every labeled input graph G (satisfying the Acyclicity Condition), construct another graph T(G) s.t. • for every execution of BLL on G, there is a “corresponding” execution of FR on T(G) • time complexities of relevant vertices in the corresponding executions are the same
Idea of Transformation • If a vertex v is initially in the category O (a sink with some links labeled 0 and some labeled 1, or not a sink with an incoming link labeled 0), then its incident links are partitioned into two sets: • all links on one set reverse at odd-numbered steps by v • all links in the other set reverse at even-numbered steps by v • Transformation replaces each vertex in O with two vertices, one corresponding to odd steps by v and the other to even steps, and inserts appropriate links
PR Time Complexity • Theorem: For every bad vertex v, termination time of v is • 1 + max{len(X): X is a chain ending at v with s + Res = σv – 1} if v is a sink or a source initially • 1 + max{len(X): X is a chain ending at v with 2s + Res = σv – 1} otherwise • Worst-case graph for global time complexity: D 1 2 3 … n/2 n/2+1 … n Vertex n/2 has work complexity n/2. Consider chain that starts at n/2, ends at n/2, and goes back and forth between n/2 and n making (n-2)/4 round trips. 2s+Res for this chain is n/2-1, and length is Θ(n2).
FR vs. PR Again • On chain on previous slide, PR has quadratic time complexity. • But FR on that chain has linear time complexity • in fact, FR has linear time complexity on any tree • On chain on previous slide, PR has slightly better global work complexity than FR.
From Graph to Distributed System • To adapt previous ideas to a distributed system: • processor is a vertex • communication channel is an edge (link) • Issues to be overcome: • Neighboring processors need to communicate to agree on which way the link between them should be directed: delays and losses • Topology can change due to movement and failures; might not always be connected
Routing in a Dynamic System • In any execution that experiences a finite number of topology changes, after the last topology change: • every node in same connected component as D (destination) should have a path to D • every node not in the same component as D stops trying to find a route to D or forward a message to D