Two-Process Systems TexPoint fonts used in EMF. Read the TexPoint manual before you delete this...

Post on 24-Dec-2015

215 views 0 download

Tags:

Transcript of Two-Process Systems TexPoint fonts used in EMF. Read the TexPoint manual before you delete this...

Two-Process Systems

Companion slides forDistributed Computing

Through Combinatorial TopologyMaurice Herlihy & Dmitry Kozlov & Sergio Rajsbaum

Distributed Computing through Combinatorial Topology

Two-Process Systems

Two-process systems can be captured by elementary

graph theorygentle introduction to more general structures needed

later for larger systemsDistributed Computing through

Combinatorial Topology2

Road MapElementary Graph Theory

Tasks

Models of Computation

Approximate Agreement

Task Solvability

Distributed Computing through Combinatorial Topology

3

Road MapElementary 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 VertexCombinatorial: an element of a set.

Distributed Computing through Combinatorial Topology

6

A VertexCombinatorial: an element of a set.

Geometric: a point in Euclidean Space

Distributed Computing through Combinatorial Topology

7

An Edge

8

An EdgeCombinatorial: a set of two vertexes.

9

An EdgeCombinatorial: a set of two vertexes.

Geometric: line segment joining two points

10

A Graph

Distributed Computing through Combinatorial Topology

11

A GraphCombinatorial: a set of sets of vertices.

Distributed Computing through Combinatorial Topology

12

A GraphCombinatorial: 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 ! Cfor each edge (s0, s1) 2 G, Â(s0) Â(s1).

Distributed Computing through Combinatorial Topology

24

Graph Coloring

Â: G ! Cfor each edge (s0, s1) 2 G, Â(s0) Â(s1).

usually process nameschromatic graphs

Distributed Computing through Combinatorial Topology

25

Graph Labeling

1 0

0

1

Distributed Computing through Combinatorial Topology

26

Graph Labeling

1 0

0

1f: G ! L

Distributed Computing through Combinatorial Topology

27

Graph Labeling

1 0

0

1f: G ! Lusually 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 …

©

37

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 ©(¾)µ©(¿).

38

Monotonicity

Strict Carrier Maps

Distributed Computing through Combinatorial Topology

For all ¾,¿2G, if ¾µ¿, then ©(¾)µ©(¿).

39

Monotonicity

Strict Carrier Maps

Distributed Computing through Combinatorial Topology

For all ¾,¿2G, if ¾µ¿, then ©(¾)µ©(¿).

Equivalent to …©(¾Å¿) µ ©(¾) Å ©(¿)

40

Monotonicity

Strict Carrier Maps

Distributed Computing through Combinatorial Topology

For all ¾,¿2G, if ¾µ¿, then ©(¾)µ©(¿).

Equivalent to …©(¾Å¿) µ ©(¾) Å ©(¿)

Definition© is strict if ©(¾Å¿) = ©(¾) Å ©(¿)

41

Road MapElementary Graph Theory

Tasks

Models of Computation

Approximate Agreement

Task Solvability

Distributed Computing through Combinatorial Topology

42

Two Processes

Distributed Computing through Combinatorial Topology

Hello! I’m

AliceHello! I’m

Bob

43

Informal Task Definition

Distributed Computing through Combinatorial Topology

Processes start with input values …

They communicate …

They halt with output values …

legal for those inputs.

44

Formal Task Definition

Distributed Computing through Combinatorial Topology

Input graph Iall possible assignments of input values

45

Formal Task Definition

Distributed Computing through Combinatorial Topology

Input graph Iall possible assignments of input values

Output graph Oall possible assignments of output values

46

Formal Task Definition

Distributed Computing through Combinatorial Topology

Input graph Iall possible assignments of input values

Output graph Oall possible assignments of output values

Carrier map ¢: I ! 2O

all possible assignments of output values for each input

47

Task Input Graph: Consensus

Distributed Computing through Combinatorial Topology

1

10

0

I

48

Task Input Graph

Distributed Computing through Combinatorial Topology

0 1

10

I

49

Task Input Graph

Distributed Computing through Combinatorial Topology

1 1

00

Pure

Colored by process names

Labeled by input values

50

Task Output Graph

Distributed Computing through Combinatorial Topology

1 1

00

O

51

Task Carrier Map

Distributed Computing through Combinatorial Topology

1 1

00

1 1

00

¢: I ! 2OI O

52

Task Carrier Map

Distributed Computing through Combinatorial Topology

1 1

00

1 1

00

¢: I ! 2OI O

If Bob runs alone with input 1 …

then he decides output 1.

53

Task Carrier Map

Distributed Computing through Combinatorial Topology

1 1

00

1 1

00

¢: I ! 2OI O

If Bob and Alice both have input 1 …

then they both decide output 1.

54

Task Carrier Map

Distributed Computing through Combinatorial Topology

1 1

00

1 1

00

¢: I ! 2OI O

If Bob has 1 and Alice 0 …

then they must agree, on either one.

55

56

Example: Coordinated Attack

Alice and Bob winIf 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

57

Output Graph

Distributed Computing through Combinatorial Topology

dawn!

noon!

failed!

O

58

Carrier Map

Distributed Computing through Combinatorial Topology

¢

I

O

59

Carrier Map

Distributed Computing through Combinatorial Topology

¢

dawn!

failed!

dawn! I

O

60

Carrier Map

Distributed Computing through Combinatorial Topology

¢

noon!

failed!

noon!I

O

61

Carrier Map

Distributed Computing through Combinatorial Topology

¢

dawn!

dawn! I

O

62

63

Example: Coordinated AttackAlice Bob

Distributed Computing through Combinatorial Topology

Enemy

64

Example: Coordinated AttackAlice Bob

Distributed Computing through Combinatorial Topology

Enemy

Alice and Bob realize that they do not need to agree

on an exact time …

65

Example: Coordinated AttackAlice 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

66

0 1

0 1/5 2/5 3/5 4/5 1

Coordinated Attack Graphs

Distributed Computing through Combinatorial Topology

¢

I

O

67

0 1

0 1/5 2/5 3/5 4/5 1

Coordinated Attack Graphs

Distributed Computing through Combinatorial Topology

¢

I

O

68

0 1

0 1/5 2/5 3/5 4/5 1

Coordinated Attack Graphs

Distributed Computing through Combinatorial Topology

¢

I

O

69

Road MapElementary Graph Theory

Tasks

Models of Computation

Approximate Agreement

Task Solvability

Distributed Computing through Combinatorial Topology

70

Protocols

Distributed Computing through Combinatorial Topology

Models of Computation

71

Alice’s Protocol

72

shared mem array 0..1 of Valueview: 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 Valueview: Value := my input value;for i: int := 0 to L do mem[A] := view; view := view + mem[B];return δ(view)

Alice’s Protocol

73Distributed Computing through Combinatorial Topology

shared two-element memory

shared mem array 0..1 of Valueview: Value := my input value;for i: int := 0 to L do mem[A] := view; view := view + mem[B];return δ(view)

Alice’s Protocol

74Distributed Computing through Combinatorial Topology

Start with input value

shared mem array 0..1 of Valueview: Value := my input value;for i: int := 0 to L do mem[A] := view; view := view + mem[B];return δ(view)

Alice’s Protocol

75Distributed Computing through Combinatorial Topology

Run for L layers

shared mem array 0..1 of Valueview: Value := my input value;for i: int := 0 to L do mem[A] := view; view := view + mem[B];return δ(view)

Alice’s Protocol

76Distributed Computing through Combinatorial Topology

Alice writes her value, read Bob’s value, and concatenate it to my view

shared mem array 0..1 of Valueview: Value := my input value;for i: int := 0 to L do mem[A] := view; view := view + mem[B];return δ(view)

Alice’s Protocol

77Distributed Computing through Combinatorial Topology

Alice writes her value, read Bob’s value, and concatenate it to my view

(full-information protocol)

shared mem array 0..1 of Valueview: Value := my input value;for i: int := 0 to L do mem[A] := view; view := view + mem[B];return δ(view)

Alice’s Protocol

78Distributed Computing through Combinatorial Topology

finally, apply task-specific decision map to view

Formal Protocol Definition

Distributed Computing through Combinatorial Topology

Input graph Iall possible assignments of input values

79

Formal Protocol Definition

Distributed Computing through Combinatorial Topology

Input graph Iall possible assignments of input values

Protocol graph Pall possible process views after execution

80

Formal Protocol Definition

Distributed Computing through Combinatorial Topology

Input graph Iall possible assignments of input values

Protocol graph Pall possible process views after execution

Carrier map ¥: I ! 2P

all possible assignments of views

81

One-Round Protocol Graph

Distributed Computing through Combinatorial Topology

10

0? 0101 ?1

¥

I

P

82

One-Round Protocol Graph

Distributed Computing through Combinatorial Topology

0? 0101 ?1

Colored by process names

Labeled with final views

P

83

One-Round Protocol Graph

Distributed Computing through Combinatorial Topology

0? 0101 ?1

Alice finishes before Bob starts, doesn’t see his value

P

84

One-Round Protocol Graph

Distributed Computing through Combinatorial Topology

0? 0101 ?1

Alice and Bob run together,she sees his value.

P

85

One-Round Protocol Graph

Distributed Computing through Combinatorial Topology

0? 0101 ?1

Alice finishes, then Bob starts

P

86

One-Round Protocol Graph

Distributed Computing through Combinatorial Topology

0? 0101 ?1

Alice and Bob run together

P

87

One-Round Protocol Graph

Distributed Computing through Combinatorial Topology

0? 0101 ?1

Bob can’t tell whether Alice saw him

P

88

Execution Carrier Map

Distributed Computing through Combinatorial Topology

10

0? 0101 ?1

¥

I

P

89

Execution Carrier Map

Distributed Computing through Combinatorial Topology

10

0? 0101 ?1

¥

I

P

¥: I ! 2P

strict carrier map¥(¾) Å ¥(¿) = ¥(¾ Å ¿)90

Output graph0 2/31/3 1

0? 0101 ?1 Protocol graph

δ

The Decision Map

Distributed Computing through Combinatorial Topology

δ

91

All Together

Distributed Computing through Combinatorial Topology

0 1

0 2/31/3 1

0? 0101 ?1¢

δ

I

P

O

¥

92

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)

δ(¥(¾)) µ ¢(¾).

93

Meaning

94

δ(¥(s)) µ ¢(s)

process strarts in state s

Meaning

95

δ(¥(s)) µ ¢(s)

runs the protocol to completion

Meaning

96

δ(¥(s)) µ ¢(s)

makes a decision …

Meaning

97

δ(¥(s)) µ ¢(s)

decision is permitted by task carrier map

Definition

Solving a Task

Distributed Computing through Combinatorial Topology

The protocol (I,P,¥) solves the task (I, O, ¢)

98

Definition

Solving a Task

Distributed Computing through Combinatorial Topology

The protocol (I,P,¥) solves the task (I, O, ¢)

if there is …

99

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

100

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

101

such that δ is carried by ¢.(δ agrees with ¢)

Layered Read-Write Model

102

Layered Read-Write Protocol

Distributed Computing through Combinatorial Topology

103

shared mem array 0..1,0..L of Valueview: 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 Valueview: 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

104

shared mem array 0..1,0..L of Valueview: 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

105

Layered R-W Protocol Graph

Distributed Computing through Combinatorial Topology

10

0? 0101 ?1

¥

I

P

106

Layered R-W Protocol Graph

Distributed Computing through Combinatorial Topology

¥

P is always a subdivision of I

I P

107

Road MapElementary Graph Theory

Tasks

Models of Computation

Approximate Agreement

Task Solvability

Distributed Computing through Combinatorial Topology

108

Alice’s 1/3-Agreement Protocol

Distributed Computing through Combinatorial Topology

mem[A] := 0other := mem[B]if other == ? then decide 0else decide 1/3

109

Alice’s 1/3-Agreement Protocol

Distributed Computing through Combinatorial Topology

mem[A] := 0if mem[B] == ? then decide 0else decide 1/3

Alice writes her value to memory

110

Alice’s 1/3-Agreement Protocol

Distributed Computing through Combinatorial Topology

mem[A] := 0if mem[B] == ? then decide 0else decide 1/3

If she doesn’t see Bob’s value, decide her own.

111

Alice’s 1/3-Agreement Protocol

Distributed Computing through Combinatorial Topology

mem[A] := 0if mem[B] == ? then decide 0else decide 1/3

If she see’s Bob’s value, jump to the middle

112

0 2/31/3 1

0 2/31/3 1

0 2/31/3 1

Distributed Computing through Combinatorial Topology

113

One-Layer 1/3-Agreement Protocol

Distributed Computing through Combinatorial Topology

0 1

0 2/31/3 1

0? 0101 ?1

δ

I

P

O

¥

114

No 1-Layer 1/5-Agreement Protocol

Distributed Computing through Combinatorial Topology

0 1

1/5 3/52/5 4/5

0? 0101 ?1

δ

P

O

¥

10

(no map possible)

I

115

10

0 1/5 2/5 3/5 4/5 1

¥

0? 0101 ?1

2-Layer 1/5-Agreement

Distributed Computing through Combinatorial Topology

¥

I

O

layer 1

layer 2

δ

116

Fact

Distributed Computing through Combinatorial Topology

In the layered read-write model,

The 1/K-Agreement Task

Has a dlog3 Ke–layer protocol

117

Road MapElementary Graph Theory

Tasks

Models of Computation

Approximate Agreement

Task Solvability

Distributed Computing through Combinatorial Topology

118

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.

119

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 ¢.

120

Corollary

Distributed Computing through Combinatorial Topology

The consensus task has no layered read-write protocol

121

Corollary

Distributed Computing through Combinatorial Topology

Any ²–agreement task has a layered read-write protocol

122

123

         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