algebraic topology and distributed computingcs.brown.edu/courses/csci2951-s/ch02.pdfdistributed...
TRANSCRIPT
Two-Process Systems
Companion slides for Distributed Computing
Through Combinatorial Topology Maurice Herlihy & Dmitry Kozlov & Sergio Rajsbaum
Distributed Computing through Combinatorial Topology
Two-Process Systems
Two-process systems can be captured by elementary
graph theory gentle introduction to more general structures needed
later for larger systems Distributed Computing through
Combinatorial Topology 2
Road Map Elementary Graph Theory
Tasks
Models of Computation
Approximate Agreement
Task Solvability Distributed Computing through
Combinatorial Topology 3
Road Map Elementary Graph Theory
Tasks
Models of Computation
Approximate Agreement
Task Solvability Distributed Computing through
Combinatorial Topology 4
A Vertex
Distributed Computing through Combinatorial Topology
5
A Vertex Combinatorial: an element of a set.
Distributed Computing through Combinatorial Topology
6
A Vertex Combinatorial: an element of a set.
Geometric: a point in Euclidean Space
Distributed Computing through Combinatorial Topology
7
An Edge
8
An Edge Combinatorial: a set of two vertexes.
9
An Edge Combinatorial: a set of two vertexes.
Geometric: line segment joining two points
10
A Graph
Distributed Computing through Combinatorial Topology
11
A Graph Combinatorial: a set of sets of vertices.
Distributed Computing through Combinatorial Topology
12
A Graph Combinatorial: a set of sets of vertices.
Geometric: points joined by line segments
Distributed Computing through Combinatorial Topology
13
Graphs
finite set V with a collection G of subsets of V,
Distributed Computing through Combinatorial Topology
14
Graphs
simplices (singular: simplex)
finite set V with a collection G of subsets of V,
vertices
Distributed Computing through Combinatorial Topology
15
Graphs
Distributed Computing through Combinatorial Topology
(1) If X 2 G, then |X| · 2
finite set V with a collection G of subsets of V,
16
Graphs
Distributed Computing through Combinatorial Topology
(1) If X 2 G, then |X| · 2
finite set V with a collection G of subsets of V,
vertex: |X| = 1 edge: |X|= 2
17
Graphs
(1) If X 2 G, then |X| · 2 (2) for all v 2 V, {v} 2 G
finite set V with a collection G of subsets of V,
18
Graphs
(1) If X 2 G, then |X| · 2 (2) for all v 2 V, {v} 2 G
(3) for all X 2 G, and Y ½ X, Y 2 G
finite set V with a collection G of subsets of V,
19
Dimension
dim(X) = |X|-1.
dimension 0
dimension 1
Distributed Computing through Combinatorial Topology
20
Pure Graphs
pure of dim 0
pure of dim 1
Distributed Computing through Combinatorial Topology
21
Graph Coloring
Distributed Computing through Combinatorial Topology
22
Graph Coloring
Â: G ! C
Distributed Computing through Combinatorial Topology
23
Graph Coloring
Â: G ! C for each edge (s0, s1) 2 G, Â(s0) ≠ Â(s1).
Distributed Computing through Combinatorial Topology
24
Graph Coloring
Â: G ! C for each edge (s0, s1) 2 G, Â(s0) ≠ Â(s1).
usually process names chromatic graphs
Distributed Computing through Combinatorial Topology
25
Graph Labeling
1 0
0
1
Distributed Computing through Combinatorial Topology
26
Graph Labeling
1 0
0
1 f: G ! L
Distributed Computing through Combinatorial Topology
27
Graph Labeling
1 0
0
1 f: G ! L usually values from some domain
Distributed Computing through Combinatorial Topology
28
Labeled Chromatic Graph
0 1
1
0
name(s) = Â(s) view(s) = f(s)
Distributed Computing through Combinatorial Topology
29
Simplicial Maps
Vertex-to-vertex map …
that also sends edges to edges.
Distributed Computing through Combinatorial Topology
30
Rigid Simplicial Maps
A simplicial map can send an edge to a vertex …
Distributed Computing through Combinatorial Topology
31
Rigid Simplicial Maps
A simplicial map can send an edge to a vertex …
A simplicial map that sends distinct vertices to distinct vertices is rigid.
Distributed Computing through Combinatorial Topology
32
A Path Between two Vertices
Distributed Computing through Combinatorial Topology
33
A Path Between two Vertices
A graph is connected if there is a path between every pair of vertices
Distributed Computing through Combinatorial Topology
34
Not Connected
A graph is connected if there is a path between every pair of vertices
Distributed Computing through Combinatorial Topology
35
Theorem
Distributed Computing through Combinatorial Topology
Theorem
Á
The image of a connected graph under a simplicial map is connected.
36
Carrier Maps
Distributed Computing through Combinatorial Topology
©: G ! 2H
For graphs G, H, a carrier map
Carries each simplex of G to a subgraph of H …
©
satisfying monotonicity: for all ¾,¿2G, if ¾µ¿, then ©(¾)µ©(¿).
37
Monotonicity
Strict Carrier Maps
Distributed Computing through Combinatorial Topology
For all ¾,¿2G, if ¾µ¿, then ©(¾)µ©(¿).
Equivalent to … ©(¾Å¿) µ ©(¾) Å ©(¿)
Definition © is strict if ©(¾Å¿) = ©(¾) Å ©(¿)
38
Road Map Elementary Graph Theory
Tasks
Models of Computation
Approximate Agreement
Task Solvability Distributed Computing through
Combinatorial Topology 39
Two Processes
Distributed Computing through Combinatorial Topology
Hello! I’m Alice
Hello! I’m Bob
40
Informal Task Definition
Distributed Computing through Combinatorial Topology
Processes start with input values …
They communicate …
They halt with output values …
legal for those inputs.
41
Formal Task Definition
Distributed Computing through Combinatorial Topology
Input graph I all possible assignments of input values
42
Formal Task Definition
Distributed Computing through Combinatorial Topology
Input graph I all possible assignments of input values
Output graph O all possible assignments of output values
43
Formal Task Definition
Distributed Computing through Combinatorial Topology
Input graph I all possible assignments of input values
Output graph O all possible assignments of output values
Carrier map ¢: I ! 2O
all possible assignments of output values for each input
44
Task Input Graph: Consensus
Distributed Computing through Combinatorial Topology
1
1 0
0
I
45
Task Input Graph
Distributed Computing through Combinatorial Topology
0 1
1 0
I
46
Task Input Graph
Distributed Computing through Combinatorial Topology
1 1
0 0
Pure
Colored by process names
Labeled by input values
47
Task Output Graph
Distributed Computing through Combinatorial Topology
1 1
0 0
O
48
Task Carrier Map
Distributed Computing through Combinatorial Topology
1 1
0 0
1 1
0 0
¢: I ! 2O I O
49
Task Carrier Map
Distributed Computing through Combinatorial Topology
1 1
0 0
1 1
0 0
¢: I ! 2O I O
If Bob runs alone with input 1 …
then he decides output 1. 50
Task Carrier Map
Distributed Computing through Combinatorial Topology
1 1
0 0
1 1
0 0
¢: I ! 2O I O
If Bob and Alice both have input 1 …
then they both decide output 1. 51
Task Carrier Map
Distributed Computing through Combinatorial Topology
1 1
0 0
1 1
0 0
¢: I ! 2O I O
If Bob has 1 and Alice 0 …
then they must agree, on either one. 52
Example: Coordinated Attack
53
Alice and Bob win If they both attack
together
Alice Bob
Distributed Computing through Combinatorial Topology
Enemy
Indifferent
Attack at dawn! Attack at noon!
Input Graph
Distributed Computing through Combinatorial Topology
I
54
Output Graph
Distributed Computing through Combinatorial Topology
dawn! noon!
failed!
O
55
Carrier Map
Distributed Computing through Combinatorial Topology
¢
I
O 56
Carrier Map
Distributed Computing through Combinatorial Topology
¢
dawn! failed!
dawn! I
O 57
Carrier Map
Distributed Computing through Combinatorial Topology
¢
noon! failed!
noon! I
O 58
Carrier Map
Distributed Computing through Combinatorial Topology
¢
dawn!
dawn! I
O 59
Example: Coordinated Attack
60
Alice Bob
Distributed Computing through Combinatorial Topology
Enemy
Example: Coordinated Attack
61
Alice Bob
Distributed Computing through Combinatorial Topology
Enemy
Alice and Bob realize that they do not need to agree
on an exact time …
Example: Coordinated Attack
62
Alice Bob
Distributed Computing through Combinatorial Topology
Enemy
Alice and Bob realize that they do not need to agree
on an exact time … they will win if attack times
are sufficiently close.
0 1
0 1/5 2/5 3/5 4/5 1
Coordinated Attack Graphs
Distributed Computing through Combinatorial Topology
¢
I
O 63
0 1
0 1/5 2/5 3/5 4/5 1
Coordinated Attack Graphs
Distributed Computing through Combinatorial Topology
¢
I
O 64
0 1
0 1/5 2/5 3/5 4/5 1
Coordinated Attack Graphs
Distributed Computing through Combinatorial Topology
¢
I
O 65
0 1
0 1/5 2/5 3/5 4/5 1
Coordinated Attack Graphs
Distributed Computing through Combinatorial Topology
¢
I
O 66
Road Map Elementary Graph Theory
Tasks
Models of Computation
Approximate Agreement
Task Solvability Distributed Computing through
Combinatorial Topology 67
Protocols
Distributed Computing through Combinatorial Topology
Models of Computation
68
Alice’s Protocol
69
shared mem array 0..1 of Value view: Value := my input value; for i: int := 0 to L do mem[A] := view; view := view + mem[A] + mem[B]; return δ(view)
Finite program
Bob’s protocol is symmetric
Distributed Computing through Combinatorial Topology
shared mem array 0..1 of Value view: Value := my input value; for i: int := 0 to L do mem[A] := view; view := view + mem[B]; return δ(view)
Alice’s Protocol
70 Distributed Computing through Combinatorial Topology
shared two-element memory
shared mem array 0..1 of Value view: Value := my input value; for i: int := 0 to L do mem[A] := view; view := view + mem[B]; return δ(view)
Alice’s Protocol
71 Distributed Computing through Combinatorial Topology
Start with input value
shared mem array 0..1 of Value view: Value := my input value; for i: int := 0 to L do mem[A] := view; view := view + mem[B]; return δ(view)
Alice’s Protocol
72 Distributed Computing through Combinatorial Topology
Run for L layers
shared mem array 0..1 of Value view: Value := my input value; for i: int := 0 to L do mem[A] := view; view := view + mem[B]; return δ(view)
Alice’s Protocol
73 Distributed Computing through Combinatorial Topology
Alice writes her value, read Bob’s value, and concatenate it to my view
shared mem array 0..1 of Value view: Value := my input value; for i: int := 0 to L do mem[A] := view; view := view + mem[B]; return δ(view)
Alice’s Protocol
74 Distributed Computing through Combinatorial Topology
Alice writes her value, read Bob’s value, and concatenate it to my view
shared mem array 0..1 of Value view: Value := my input value; for i: int := 0 to L do mem[A] := view; view := view + mem[B]; return δ(view)
Alice’s Protocol
75 Distributed Computing through Combinatorial Topology
finally, apply task-specific decision map to view
Formal Protocol Definition
Distributed Computing through Combinatorial Topology
Input graph I all possible assignments of input values
76
Formal Protocol Definition
Distributed Computing through Combinatorial Topology
Input graph I all possible assignments of input values
Protocol graph P all possible process views after execution
77
Formal Protocol Definition
Distributed Computing through Combinatorial Topology
Input graph I all possible assignments of input values
Protocol graph P all possible process views after execution
Carrier map ¥: I ! 2O
all possible assignments of views
78
One-Round Protocol Graph
Distributed Computing through Combinatorial Topology
1 0
0? 01 01 ?1
¥
I
P 79
One-Round Protocol Graph
Distributed Computing through Combinatorial Topology
0? 01 01 ?1
Colored by process names
Labeled with final views
P
80
One-Round Protocol Graph
Distributed Computing through Combinatorial Topology
0? 01 01 ?1
Alice finishes before Bob starts, doesn’t see his value
P
81
One-Round Protocol Graph
Distributed Computing through Combinatorial Topology
0? 01 01 ?1
Alice and Bob run together, she sees his value.
P
82
One-Round Protocol Graph
Distributed Computing through Combinatorial Topology
0? 01 01 ?1
Alice finishes, then Bob starts
P
83
One-Round Protocol Graph
Distributed Computing through Combinatorial Topology
0? 01 01 ?1
Alice and Bob run together
P
84
One-Round Protocol Graph
Distributed Computing through Combinatorial Topology
0? 01 01 ?1
Bob can’t tell whether Alice saw him
P
85
Execution Carrier Map
Distributed Computing through Combinatorial Topology
1 0
0? 01 01 ?1
¥
I
P 86
Execution Carrier Map
Distributed Computing through Combinatorial Topology
1 0
0? 01 01 ?1
¥
I
P
¥: I ! 2P
strict carrier map ¥(¾) Å ¥(¿) = ¥(¾ Å ¿) 87
Output graph 0 2/3 1/3 1
0? 01 01 ?1 Protocol graph
δ
The Decision Map
Distributed Computing through Combinatorial Topology
δ
88
All Together
Distributed Computing through Combinatorial Topology
0 1
0 2/3 1/3 1
0? 01 01 ?1 ¢
δ
I
P
O
¥
89
Definition
Distributed Computing through Combinatorial Topology
Decision map δ is carried by carrier map ¢ if
for each input vertex s,
for each input edge ¾,
δ(¥(s)) µ ¢(s)
δ(¥(¾)) µ ¢(¾).
90
Definition
Solving a Task
Distributed Computing through Combinatorial Topology
The protocol (I,P,¥) solves the task (I, O, ¢)
91
Definition
Solving a Task
Distributed Computing through Combinatorial Topology
The protocol (I,P,¥) solves the task (I, O, ¢)
if there is …
92
Definition
Solving a Task
Distributed Computing through Combinatorial Topology
The protocol (I,P,¥) solves the task (I, O, ¢)
if there is …
a simplicial decision map δ:P ! O
93
Definition
Solving a Task
Distributed Computing through Combinatorial Topology
The protocol (I,P,¥) solves the task (I, O, ¢)
if there is …
a simplicial decision map δ:P ! O
94
such that δ is carried by ¢. (δ agrees with ¢)
Layered Read-Write Model
95
Layered Read-Write Protocol
Distributed Computing through Combinatorial Topology
96
shared mem array 0..1,0..L of Value view: Value := my input value; for i: int := 0 to L do mem[i][A] := view; view := view + mem[A] + mem[B]; return δ(view)
shared mem array 0..1,0..L of Value view: Value := my input value; for i: int := 0 to L do mem[i][A] := view; view := view + mem[A] + mem[B]; return δ(view)
As before, run for L layers
Layered Read-Write Protocol
Distributed Computing through Combinatorial Topology
97
shared mem array 0..1,0..L of Value view: Value := my input value; for i: int := 0 to L do mem[i][A] := view; view := view + mem[A] + mem[B]; return δ(view)
Layered Read-Write Protocol
Distributed Computing through Combinatorial Topology
Each layer uses a distinct, “clean” memory
98
Layered R-W Protocol Graph
Distributed Computing through Combinatorial Topology
1 0
0? 01 01 ?1
¥
I
P 99
Layered R-W Protocol Graph
Distributed Computing through Combinatorial Topology
¥
P is always a subdivision of I
I P
100
Road Map Elementary Graph Theory
Tasks
Models of Computation
Approximate Agreement
Task Solvability Distributed Computing through
Combinatorial Topology 101
Alice’s 1/3-Agreement Protocol
Distributed Computing through Combinatorial Topology
mem[A] := 0 other := mem[B] if other == ? then decide 0 else decide 1/3
102
Alice’s 1/3-Agreement Protocol
Distributed Computing through Combinatorial Topology
mem[A] := 0 if mem[B] == ? then decide 0 else decide 1/3
Alice writes her value to memory
103
Alice’s 1/3-Agreement Protocol
Distributed Computing through Combinatorial Topology
mem[A] := 0 if mem[B] == ? then decide 0 else decide 1/3
If she doesn’t see Bob’s value, decide her own.
104
Alice’s 1/3-Agreement Protocol
Distributed Computing through Combinatorial Topology
mem[A] := 0 if mem[B] == ? then decide 0 else decide 1/3
If she see’s Bob’s value, jump to the middle
105
0 2/3 1/3 1
0 2/3 1/3 1
0 2/3 1/3 1
Distributed Computing through Combinatorial Topology
106
One-Layer 1/3-Agreement Protocol
Distributed Computing through Combinatorial Topology
0 1
0 2/3 1/3 1
0? 01 01 ?1
δ
I
P
O
¥
107
No 1-Layer 1/5-Agreement Protocol
Distributed Computing through Combinatorial Topology
0 1
1/5 3/5 2/5 4/5
0? 01 01 ?1
δ
P
O
¥
1 0
(no map possible)
I
108
1 0
0 1/5 2/5 3/5 4/5 1
¥
0? 01 01 ?1
2-Layer 1/5-Agreement
Distributed Computing through Combinatorial Topology
¥
I
O
layer 1
layer 2
δ
109
Fact
Distributed Computing through Combinatorial Topology
In the layered read-write model,
The 1/K-Agreement Task
Has a dlog3 Ke–layer protocol
110
Road Map Elementary Graph Theory
Tasks
Models of Computation
Approximate Agreement
Task Solvability Distributed Computing through
Combinatorial Topology 111
Fact
Distributed Computing through Combinatorial Topology
The protocol graph for any L-layer protocol with input graph I is a subdivision of I, where each edge is subdivided 3L times.
112
Main Theorem
Distributed Computing through Combinatorial Topology
The two-process task (I, O, ¢) is solvable in the layered read-write model if and only if there exists a connected carrier map ©: I ! 2O carried by ¢.
113
Corollary
Distributed Computing through Combinatorial Topology
The consensus task has no layered read-write protocol
114
Corollary
Distributed Computing through Combinatorial Topology
Any ²–agreement task has a layered read-write protocol
115
116
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
• You are free: – to Share — to copy, distribute and transmit the work – to Remix — to adapt the work
• Under the following conditions: – Attribution. You must attribute the work to “Distributed Computing through
Combinatorial Topology” (but not in any way that suggests that the authors endorse you or your use of the work).
– Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under the same, similar or a compatible license.
• For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to
– http://creativecommons.org/licenses/by-sa/3.0/. • Any of the above conditions can be waived if you get permission from
the copyright holder. • Nothing in this license impairs or restricts the author's moral rights.
Distributed Computing through Combinatorial Topology