870 likes | 1.01k Views
Optimal Distributed All Pairs Shortest Paths . Stephan Holzer ETH Zürich Roger Wattenhofer ETH Zürich. ETH Zurich – Distributed Computing Group . TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: A A A A A A.
E N D
Optimal Distributed • All Pairs Shortest Paths Stephan Holzer ETH Zürich Roger Wattenhofer ETH Zürich ETH Zurich – Distributed Computing Group TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAAA
Distributed network Graph G of n nodes 2 1 5 3 4
Distributed network Graph G of n nodes Unique IDs 2 1 5 3 4
Distributed network Graph G of n nodes Unique IDs 2 Localinfor- mationonly 1 1 5 3 4
Distributed network Graph G of n nodes Unique IDs 2 Localinfor- mationonly 1 5 3 2 4 1 3 Slide inspiredbyDanuponNanongkai
Distributed network Graph G of n nodes Unique IDs 2 Localinfor- mationonly 1 5 3 2 ? 4 1 3
Distributed network Graph G of n nodes Unique IDs 2 log n Localinfor- mationonly log n log n 1 log n 5 log n 3 2 log n ? 4 1 3 Limited bandwidth
Distributed network Graph G of n nodes Unique IDs 2 Synchronized Internal computations negligible log n Localinfor- mationonly log n log n 1 log n 5 log n 3 2 log n 4 1 ? Time complexity: number of communication rounds 3 Limited bandwidth
Count thenodes! Compute BFS-Tree
Count thenodes! 2 Compute BFS-Tree 2. Count nodes in subtrees 1 2 1 2 2 1 0 2 1 Runtime: ?
Count thenodes! Runtime: ? 2 Compute BFS-Tree 2. Count nodes in subtrees 1 2 1 2 2 1 0 2 1 Diameter
Diameter of a network • Distancebetweentwonodes = Numberof hops ofshortestpath
Diameter of a network • Distancebetweentwonodes = Numberof hops ofshortestpath
Diameter of a network • Distance between two nodes = Number of hops of shortest path • Diameter of network = Maximum distance, between any two nodes
Diameter of a network Diameter of thisnetwork? Distancebetweentwonodes = Number of hops of shortestpath Diameter of network = Maximum distance, betweenanytwonodes
Fundamental problems • Spanning Tree – Broadcasting, Aggregation, etc • Minimum Spanning Tree – Efficient broadcasting, etc. • Shortest path – Routing, etc. • Steiner tree – Multicasting, etc. • Many other graph problems. • Diameter appears frequently in distributed computing
Fundamental problems • Spanning Tree – Broadcasting, Aggregation, etc • Minimum Spanning Tree – Efficient broadcasting, etc. • Shortest path – Routing, etc. • Steiner tree – Multicasting, etc. • Many other graph problems. • Diameter appears frequently in distributed computing • E.g. local vs. global
Fundamental problems 1. Formal definition? • Spanning Tree – Broadcasting, Aggregation, etc • Minimum Spanning Tree – Efficient broadcasting, etc. • Shortest path – Routing, etc. • Steiner tree – Multicasting, etc. • Many other graph problems. • Diameter appears frequently in distributed computing • E.g. local vs. global Complexity of computing D? . Known bounds: O(nD) Ω (D) [before 2012] ≈O(n2) ≈(1)
Fundamental problems 1. Formal definition? • Spanning Tree – Broadcasting, Aggregation, etc • Minimum Spanning Tree – Efficient broadcasting, etc. • Shortest path – Routing, etc. • Steiner tree – Multicasting, etc. • Many other graph problems. • Diameter appears frequently in distributed computing • E.g. local vs. global Complexity of computing D? . Known bounds: O(nD) Ω (D) New bounds: Ω (n) [before 2012] ≈O(n2) ≈(1) Even if D = 5 [2012] [FHW 2012]
Fundamental problems 1. Formal definition? • Spanning Tree – Broadcasting, Aggregation, etc • Minimum Spanning Tree – Efficient broadcasting, etc. • Shortest path – Routing, etc. • Steiner tree – Multicasting, etc. • Many other graph problems. • Diameter appears frequently in distributed computing • E.g. local vs. global Complexity of computing D? . Known bounds: O(nD) Ω (D) New bounds: O(n) Ω (n) [before 2012] ≈O(n2) ≈(1) Even if D = 5 3 [here] [FHW 2012]
Fundamental problems 1. Formal definition? Use APSP to Compute Diameter • Spanning Tree – Broadcasting, Aggregation, etc • Minimum Spanning Tree – Efficient broadcasting, etc. • Shortest path – Routing, etc. • Steiner tree – Multicasting, etc. • Many other graph problems. • Diameter appears frequently in distributed computing • E.g. local vs. global Independently: [Peleg, Roditty, Tal 2012] Complexity of computing D? . Known bounds: O(nD) Ω (D) New bounds: O(n) Ω (n) [before 2012] ≈O(n2) ≈(1) Even if D = 5 3 [here] [FHW 2012]
Extentions Routing tables Socialnetworks Fightingspam
Extentions Combination with: [Peleg, Roditty, Tal 2012]
Extentions Combined with [Peleg, Roditty, Tal 2012]
APSP in O(n) Compute All Pairs Shortest Paths 0
APSP in O(n) Knows its distance to all other nodes Compute All Pairs Shortest Paths 0
APSP in O(n) Compute All Pairs Shortest Paths 0
APSP in O(n) Compute All Pairs Shortest Paths For each node { compute distances to all other nodes; } 0
APSP in O(n) Compute All Pairs Shortest Paths For each node { compute distances to all other nodes; } 1 1 1 0 1
APSP in O(n) Compute All Pairs Shortest Paths For each node { compute distances to all other nodes; } 2 1 2 1 2 2 1 0 2 1
APSP in O(n) Compute All Pairs Shortest Paths For each node { compute distances to all other nodes; O(D) } 2 1 2 1 2 2 1 0 2 1
APSP in O(n) Compute All Pairs Shortest Paths For each node { compute distances to all other nodes; O(D) } 0
APSP in O(n) Compute All Pairs Shortest Paths For each node { compute distances to all other nodes; O(D) } 1 1 1 0 1
APSP in O(n) Compute All Pairs Shortest Paths For each node { compute distances to all other nodes; O(D) } 1 2 1 2 2 1 2 0 1
APSP in O(n) Compute All Pairs Shortest Paths For each node { compute distances to all other nodes; O(D) } 1 2 1 2 2 3 1 2 0 1
APSP in O(n) Compute All Pairs Shortest Paths For each node { O(n) compute distances to all other nodes; O(D) } 1 2 1 2 2 3 1 2 0 1
APSP in O(n) Compute All Pairs Shortest Paths For each node { O(n) compute distances to all other nodes; O(D) } O(nD) 1 2 1 2 2 3 1 2 0 1
APSP in O(n) Compute All Pairs Shortest Paths For each node { O(n) compute distances to all other nodes; O(D) } O(nD) 1 2 1 2 Limited parallelism: Only some nodes active. 2 3 1 2 0 1
APSP in O(n) Compute All Pairs Shortest Paths For each node { O(n) compute distances to all other nodes; O(D) } O(nD) 1 2 1 2 Limited parallelism: Only some nodes active. Wanted: All nodes active all the time! 2 3 1 2 0 1
APSP in O(n) Compute All Pairs Shortest Paths
APSP in O(n) Compute All Pairs Shortest Paths 1. Pick a root-node r r
APSP in O(n) Compute All Pairs Shortest Paths Pick a root-node r T := BFS-Tree(r) r
APSP in O(n) Compute All Pairs Shortest Paths Pick a root-node r; T := BFS-Tree(r); Pebble P traverses T in preorder; r
APSP in O(n) Compute All Pairs Shortest Paths • Pick a root-node r; • T := BFS-Tree(r); • Pebble P traverses T • in preorder; • If P visits node v first time{ • wait 1 timeslot; • start shortest paths(v); • } r
APSP in O(n) Compute All Pairs Shortest Paths • Pick a root-node r; • T := BFS-Tree(r); • Pebble P traverses T • in preorder; • If P visits node v first time{ • wait 1 timeslot; • start shortest paths(v); • } u w r v
APSP in O(n) Compute All Pairs Shortest Paths • Pick a root-node r; • T := BFS-Tree(r); • Pebble P traverses T • in preorder; • If P visits node v first time{ • wait 1 timeslot; • start shortest paths(v); • } Starts at t u w v