Distributed Recursion

Size: px
Start display at page:

Download "Distributed Recursion"

Transcription

1 Distributed Recursion March 2011 Sergio Rajsbaum Instituto de Matemáticas, UNAM joint work with Eli Gafni, UCLA

2 Introduction Though it is a new field, computer science already touches virtually every aspect of human endeavor From Foundations of Computer Science by Al Aho and Jeff Ullman

3 But... fundamentally, computer science is a science of abstraction creating the right model for thinking about a problem and devising the appropriate mechanizable techniques to solve it. From Foundations of Computer Science by Al Aho and Jeff Ullman

4 Algorithms the techniques used to obtain solutions by manipulating data as represented by the abstractions of a data model From Foundations of Computer Science by Al Aho and Jeff Ullman

5 Recursion a very useful technique for defining concepts and solving problems Whenever we need to define an object precisely or whenever we need to solve a problem, we should always ask, What does the recursive solution look like? From Foundations of Computer Science by Al Aho and Jeff Ullman

6 Recursion The power of computers comes from their ability to execute the same task, or different versions of the same task, repeatedly. in recursion a concept is defined, directly or indirectly, in terms of itself. From Foundations of Computer Science by Al Aho and Jeff Ullman

7 Recursive definitions define a class of objects in terms of the objects themselves.

8 To be meaningful...

9 To be meaningful 1. One or more basis rules, in which some simple objects are defined, and 2. Inductive rules, whereby larger objects are defined in terms of smaller ones in the collection.

10 Understanding recursion using friends

11 Understanding recursion using friends

12 Towers of Hanoi

13 Towers of Hanoi using friends How do I solve Towers of Hanoi??

14 Towers of Hanoi using friends Ask a (younger) friend for help with a smaller problem!

15 Towers of Hanoi using Ask a (younger) friend for help with a smaller problem move top 3 friends

16 Towers of Hanoi using friends Ask a (younger) friend for help with a smaller problem thanks

17 Towers of Hanoi using friends Ask a (younger) friend for help with a smaller problem I move one

18 Towers of Hanoi using friends Ask a (younger) friend for help with a smaller problem help again

19 Towers of Hanoi using friends Ask a (younger) friend for help with a smaller problem thanks!

20 Towers of Hanoi using friends

21 Towers of Hanoi using friends Basic elements in a recursive function f :

22 Towers of Hanoi using friends Basic elements in a recursive function f : Split into smaller problems

23 Towers of Hanoi using friends Basic elements in a recursive function f : Split into smaller problems invoke f on them

24 Towers of Hanoi using friends Basic elements in a recursive function f : split Split into smaller problems invoke f on them merge the results

25 Towers of Hanoi using friends Basic elements in a recursive function f : split Split into smaller problems invoke f on them merge the results

26 Towers of Hanoi using friends Basic elements in a recursive function f : split Split into smaller problems invoke f on them merge the results

27 Towers of Hanoi Challenge: find a non-recursive algorithm

28 Recursive programs are often more succinct or easier to understand than their iterative counterparts. More importantly, some problems are more easily attacked by recursive programs than by iterative programs. From Foundations of Computer Science by Al Aho and Jeff Ullman

29 Recursion in distributed algorithms (need real friends) Garfield and Friends

30 Motivation The benefits of designing and analyzing sequential algorithms using recursion are well known.

31 Motivation The benefits of designing and analyzing sequential algorithms using recursion are well known. However, little use of recursion has been done in distributed algorithms

32 Recursion in distributed algorithms

33 Recursion in distributed algorithms Instead of just one process, many

34 Recursion in distributed algorithms Instead of just one process, many Split the problem now means: subproblems for fewer processes

35 Recursion in distributed algorithms Instead of just one process, many Split the problem now means: subproblems for fewer processes Get help from smaller friend groups to solve the subproblems

36 Recursion in distributed algorithms Instead of just one process, many Split the problem now means: subproblems for fewer processes Get help from smaller friend groups to solve the subproblems Until a problem for one friend is reached

37 Recursion in distributed algorithms Instead of just one process, many Split the problem now means: subproblems for fewer processes Get help from smaller friend groups to solve the subproblems Until a problem for one friend is reached

38 Problems

39 Problems In seq., functions: one input, one output

40 Problems In seq., functions: one input, one output In dist., we consider tasks: distributed inputs/outputs, represented as vectors

41 Problems In seq., functions: one input, one output In dist., we consider tasks: distributed inputs/outputs, represented as vectors Interested mainly in coordination, local computation power disregarded

42 Problems In seq., functions: one input, one output In dist., we consider tasks: distributed inputs/outputs, represented as vectors Interested mainly in coordination, local computation power disregarded see some examples...

43 Agreement tasks

44 Agreement tasks consensus: agree on 1 value

45 Agreement tasks consensus: agree on 1 value k-set agreement: on at most k values

46 Agreement tasks consensus: agree on 1 value k-set agreement: on at most k values snapshots: on possible views of a run, subsets ordered by containment

47 Disagreement tasks

48 Disagreement tasks Leader election: one of the participants

49 Disagreement tasks Leader election: one of the participants Symmetry breaking: not all decide the same value

50 Disagreement tasks Leader election: one of the participants Symmetry breaking: not all decide the same value Renaming: all decide different values, names on a small name space

51 Wait-free read/write shared memory model

52 Wait-free read/write shared memory model n Processes

53 Wait-free read/write shared memory model n Processes Communication

54 Wait-free read/write shared memory model n Processes Communication

55 Wait-free read/write shared memory model n Processes Communication Asynchronous

56 Wait-free read/write shared memory model n Processes Communication Asynchronous Any number may crash

57 Distributed splitters asking help from smaller groups of friends

58 Distributed splitters

59 Distributed splitters Is there a wait-free algorithm to split in two?

60 Distributed splitters Is there a wait-free algorithm to split in two? Perfect splitting No! n processes left: n/2 right: n/2

61 Strong splitter n processes left: at least 1 at most n-1 right: at least 1, at most n-1

62 Strong splitter No! Need objects stronger than read/write (except for some values of n: WSB problem [Castañeda,Rajsbaum podc08]) n processes left: at least 1 at most n-1 right: at least 1, at most n-1

63 Very Weak splitter n processes left: at least 0 at most n-1 right: at least 1, at most n

64 Very Weak splitter there is a wait-free algorithm n processes left: at least 0 at most n-1 right: at least 1, at most n

65 Very Weak splitter there is a wait-free algorithm when less than n processes n arrive, they go left left: at least 0 at most n-1 right: at least 1, at most n

66 Weak splitter n processes at most one stop left: at least 0 at most n-1 right: at least 0, at most n-1

67 Weak splitter Hence there is a wait-free algorithm n processes at most one stop left: at least 0 at most n-1 right: at least 0, at most n-1

68 Very weak splitter Algorithm VWsplitter id (n): - write id, read all registers - if read-set = n, then return right else - return left

69 Very weak splitter Algorithm VWsplitter id (n): - write id, read all registers at least one sees all else - if read-set = n, then return right - return left

70 Very weak splitter Algorithm VWsplitter id (n): - write id, read all registers at least one sees all - if read-set = n, then return right else - return left at most n-1 call this

71 Weak splitter Algorithm Wsplitter id (n): - write id, read all registers - if read-set = n, then - if id= max{read-set} return stop - else return right else - return left

72 Weak splitter Algorithm Wsplitter id (n): - write id, read all registers - if read-set = n, then at least one sees all - if id= max{read-set} return stop - else return right else - return left

73 Weak splitter Algorithm Wsplitter id (n): - write id, read all registers - if read-set = n, then at least one sees all - if id= max{read-set} return stop else - else return right at most n-1 call this - return left

74 Weak splitter Algorithm Wsplitter id (n): - write id, read all registers - if read-set = n, then at least one sees all - if id= max{read-set} return stop else - else return right - return left at most n-1 call this at most n-1 call this

75 Recursive distributed programming

76 snapshots task The goal: - Each process obtains a set of ids of participating processes - the sets can be ordered by containment Used to obtain consistent views of an execution: ids in the same set are concurrent

77 ok 1,2,3 -,2,- -,2,3 views

78 NOT ok 1,2,- -,2,- 1,-,3 views

79 VWsplitter snapshots Algorithm Snapshot id (n): - write id, read all registers - if read-set = n, then return read-set else - Snapshot id (n-1)

80 VWsplitter snapshots Algorithm Snapshot id (n): - write id, read all registers at least one sees all else - if read-set = n, then return read-set - Snapshot id (n-1)

81 VWsplitter snapshots Algorithm Snapshot id (n): - write id, read all registers at least one sees all - if read-set = n, then return read-set else - Snapshot id (n-1) at most n-1 call this

82 VWsplitter snapshots Algorithm Snapshot id (n): - write id, read all registers at least one sees all - if read-set = n, then return read-set else - Snapshot id (n-1) at contained most n-1 in the call previous this sets

83 Immediate snapshots Algorithm Snapshot id (n) computes more than snapshots: the snapshot of a process happens immediately after its write i in read-set of j then read-set of i subset of read-set of j

84 Linear recursion invoke IS(3) 3 outputs 1,2,3 1 2 invoke IS(2) 2 outputs 1,2 1 invoke IS(1) 1 outputs 1

85 Recursive -> iterated when we unfold the recursion, we get a run on a sequence of read/write memories because each recursive call works with a fresh memory

86 every copy is new

87 arrive in arbitrary order last one sees all

88 2 arrive in arbitrary order last one sees all

89 2 arrive in arbitrary order last one sees all

90 2 arrive in arbitrary order -,2,- last one sees all

91 2 3 arrive in arbitrary order last one sees all

92 arrive in arbitrary order 2 3 -,2,3 last one sees all

93 1 2 3 arrive in arbitrary order last one sees all

94 arrive in arbitrary order ,2,3 last one sees all

95 arrive in arbitrary order ,2,3 last one sees all

96 1 2 3 arrive in arbitrary order last one sees all returns 1,2,3

97 1 2 3 remaining 2 go to next memory

98 1 2 3 remaining 2 go to next memory 2

99 1 2 3 remaining 2 go to next memory 2 -,2,-

100 rd one returns -,2, ,2,3

101 rd one returns -,2,3 2 3

102 nd one goes alone 2 3

103 ,2,-

104 1 2 3 returns -,2,

105 so in this run, the views are -,2,3 -,2,-

106 so in this run, the views are 1,2,3 -,2,3 -,2,-

107 another run

108 1 2 3 arrive in arbitrary order

109 1 2 3 all see all

110 ,2,3 all see all

111 and in this case, no recursive call, they all return with 1,2,

112 and in this case, no ,2,3 recursive call, they all return with 1,2,3

113 Renaming and binary branching recursion

114 Branching recursion BR(4) BRL(3) BRR(3) BRL(2) BRL(2) BRL(1) BRR(1) BRL(1) BRR(1)

115 Renaming

116 Renaming Processes choose new names, as few as possible

117 Renaming Processes choose new names, as few as possible There is a wait-free algorithm for 2n-1 names

118 Renaming Processes choose new names, as few as possible There is a wait-free algorithm for 2n-1 names and impossible for fewer names (except in some exceptional cases)

119 Recursive renaming Left to right Right to left

120 Recursive renaming Use weak splitter Left to right Right to left

121 Recursive renaming Use weak splitter Some go left, and solve renaming recursively from left to right, the others do it from Left to right right to left Right to left

122 Recursive renaming Use weak splitter Some go left, and solve renaming recursively from left to right, the others do it from Left to right right to left one may stop with a new name Right to left

123 Recursive renaming Use weak splitter Some go left, and solve renaming recursively from left to right, the others do it from right to left one may stop with a new name Left to right Right to left May choose this name

124 Renaming Algorithm Renaming id (n,first,d): - write id, read all registers - Last = First + D(2n-2) - if read-set = n, and id = max read-set then return Last else - else return RenamingLR(n-1,Last-1,-D) - RenamingRL id (n-1,first,d)

125 Renaming Algorithm Renaming id (n,first,d): - write id, read all registers - Last = First + D(2n-2) - if read-set = n, and id = max read-set then return Last else - else return RenamingLR(n-1,Last-1,-D) - RenamingRL id (n-1,first,d) at least one sees all

126 Renaming Algorithm Renaming id (n,first,d): - write id, read all registers - Last = First + D(2n-2) - if read-set = n, and id = max read-set then return Last else - else return RenamingLR(n-1,Last-1,-D) - RenamingRL id (n-1,first,d) at least one sees all at most n-1 call this

127 Renaming Algorithm Renaming id (n,first,d): - write id, read all registers - Last = First + D(2n-2) - if read-set = n, and id = max read-set then return Last else - else return RenamingLR(n-1,Last-1,-D) - RenamingRL id (n-1,first,d) at least one sees all at most n-1 call this at most n-1 call this

128 Recursive algorithms facilitate impossibility proofs Emma Louise Jones

129 Recursive iterated when we unfold the recursion, we get an iterated run because each recursive call works with a fresh memory

130 every copy is new

131 arrive in arbitrary order last one sees all

132 2 arrive in arbitrary order last one sees all

133 2 arrive in arbitrary order last one sees all

134 2 arrive in arbitrary order -,2,- last one sees all

135 2 3 arrive in arbitrary order last one sees all

136 arrive in arbitrary order 2 3 -,2,3 last one sees all

137 1 2 3 arrive in arbitrary order last one sees all

138 arrive in arbitrary order ,2,3 last one sees all

139 arrive in arbitrary order ,2,3 last one sees all

140 1 2 3 arrive in arbitrary order last one sees all returns 1,2,3

141 1 2 3 remaining 2 go to next memory

142 1 2 3 remaining 2 go to next memory 2

143 1 2 3 remaining 2 go to next memory 2 -,2,-

144 rd one returns -,2, ,2,3

145 rd one returns -,2,3 2 3

146 nd one goes alone 2 3

147 ,2,-

148 1 2 3 returns -,2,

149 limitations come from indistinguishability 0 0 1

150 limitations come from indistinguishability?? 0 0 1

151 limitations come from indistinguishability The most essential distributed computing issue is that a process has only a local perspective of the world 0?? 0 1

152 limitations come from indistinguishability The most essential distributed computing issue is that a process has only a local perspective of the world Represent with a vertex labeled with id (green) and a local state this perspective 0 0 1??

153 limitations come from indistinguishability The most essential distributed computing issue is that a process has only a local perspective of the world Represent with a vertex labeled with id (green) and a local state this perspective E.g., its input is ??

154 limitations come from indistinguishability The most essential distributed computing issue is that a process has only a local perspective of the world Represent with a vertex labeled with id (green) and a local state this perspective E.g., its input is 0 Process does not know if another process has input 0 or 1, a graph 0 0 1??

155 Indistinguishability graph for 2 processes

156 focus on 2 processes 2 there may be more that arrive after

157 sees only itself 2

158 2 sees only itself -,2,-

159 2 3 green sees both but...

160 2 3 -,2,3 green sees both but...

161 green sees both 2 3 -,2,- -,2,3 but...

162 2 3 green sees both but, doesn't know if seen by the other

163 2 3 -,2,3 green sees both but, doesn't know if seen by the other

164 ?? 2 3 -,2,3 green sees both but, doesn't know if seen by the other

165 ?? green sees both 2 3 -,2,- -,2,3 but, doesn't know if seen by the other

166 ?? green sees both 2 3 -,2,- -,2,3 but, doesn't know if seen by -,2,3 the other

167 one round graph for 2 processes

168 one round graph for 2 processes solo

169 one round graph for 2 processes solo solo

170 one round graph for 2 processes solo see each other solo

171 iterated runs for each run in round 1 there are the same 3 runs in the next round round 1: round 2:

172 iterated runs for each run in round 1 there are the same 3 runs in the next round round 1: round 2:

173 iterated runs for each run in round 1 there are the same 3 runs in the next round round 1: round 2:

174 iterated runs for each run in round 1 there are the same 3 runs in the next round round 1: round 2:

175 iterated runs for each run in round 1 there are the same 3 runs in the next round round 1: round 2:

176 iterated runs solo sees both round 2:

177 iterated runs solo sees both solo in both rounds round 2:

178 iterated runs solo sees both round 2:

179 iterated runs solo sees both round 2: sees both, then solo in 2nd

180 iterated runs see each other in 1st round round 1: round 2: see each other in both

181 More rounds round 1: round 2: round 3: Theorem: protocol graph after k rounds -longer -but always connected

182 implications in terms of - task solvability - complexity - computability

183 representing tasks binary consensus Input Graph Output Graph

184 representing tasks binary consensus Input/output relation Input Graph Output Graph

185 representing tasks binary consensus start with same input decide same output Input/output relation Input Graph Output Graph

186 representing tasks binary consensus diferent inputs, agree on any 1 1 Input/output relation Input Graph Output Graph

187 Binary consensus is not solvable due to connectivity Input Graph Output Graph

188 Binary consensus is not solvable due to connectivity Input/output relation Input Graph Output Graph

189 Binary consensus is not solvable Each edge is an initial configuration of the protocol due to connectivity Input/output relation Input Graph Output Graph

190 Binary consensus is not solvable Each edge is an initial configuration subdivided of after the 1 protocol round due to connectivity Input/output relation Input Graph Output Graph

191 Binary consensus is not solvable due to connectivity Each edge is an initial configuration subdivided no solution of after the in 1 protocol round Input/output relation Input Graph Output Graph

192 Binary consensus is not solvable due to connectivity Each edge is an initial configuration subdivided no solution of after the in 1 protocol round 0 0 decide 0 0 Input/output relation 1 1 decide 1 1 Input Graph Output Graph

193 Binary consensus is not solvable due to connectivity Each edge is an initial configuration subdivided no of after the in 1 protocol no solution in k rounds 0 0 decide 0 0 Input/output relation 1 1 decide 1 1 Input Graph Output Graph

194 Binary consensus is not solvable due to connectivity Each edge is an initial configuration subdivided no of after the in 1 protocol no solution in k rounds 0 0 decide 0 0 Input/output relation 1 1 decide 1 1 Input Graph Output Graph

195 Binary consensus is not solvable due to connectivity Each edge is an initial configuration subdivided no of after the in 1 protocol no solution in k rounds 0 0 decide 0 0 Input/output relation 1 1 decide 1 1 Input Graph Output Graph

196 Runs for 2 processes round 1: round 2: round 3: Theorem: protocol graph after k rounds -longer -but always connected

197 Runs for n processes 4 local states in some execution 3-dim simplex e.g. inputs 0,1,2, Theorem: protocol complex after k rounds - recursively subdivided - but always n-connected

198 ContextFree SpiralTree Conclusions

199 Conclusions

200 Conclusions In SSS 2010 we present recursive algorithms for snapshots, immediate snapshots, renaming and swap

201 Conclusions In SSS 2010 we present recursive algorithms for snapshots, immediate snapshots, renaming and swap linear, binary branching and multi-branching recursion

202 Conclusions In SSS 2010 we present recursive algorithms for snapshots, immediate snapshots, renaming and swap linear, binary branching and multi-branching recursion Recursion is useful:

203 Conclusions In SSS 2010 we present recursive algorithms for snapshots, immediate snapshots, renaming and swap linear, binary branching and multi-branching recursion Recursion is useful: - some new algorithms,

204 Conclusions In SSS 2010 we present recursive algorithms for snapshots, immediate snapshots, renaming and swap linear, binary branching and multi-branching recursion Recursion is useful: - some new algorithms, - facilitates analysis

205 Conclusions

206 Conclusions Recursion is also interesting for lower bounds, due to recursive structure of the iterated models obtained

207 Conclusions Recursion is also interesting for lower bounds, due to recursive structure of the iterated models obtained In OPODIS 2010 we show how to transform a distributed algorithm to iterated

208 Conclusions Recursion is also interesting for lower bounds, due to recursive structure of the iterated models obtained In OPODIS 2010 we show how to transform a distributed algorithm to iterated A survey in LATIN 2010 (LNCS 6034)

209 Conclusions Recursion is also interesting for lower bounds, due to recursive structure of the iterated models obtained In OPODIS 2010 we show how to transform a distributed algorithm to iterated A survey in LATIN 2010 (LNCS 6034) Connection to topology

210 Open questions

211 Open questions Can every distributed algorithm be written in a recursive form?

212 Open questions Can every distributed algorithm be written in a recursive form? Our algorithms, based on splitters, have depth O(n), and quadratic step complexity. Other type of recursive algorithms?

213 Open questions Can every distributed algorithm be written in a recursive form? Our algorithms, based on splitters, have depth O(n), and quadratic step complexity. Other type of recursive algorithms? Programming languages for recursive algorithms?

214 Open questions Can every distributed algorithm be written in a recursive form? Our algorithms, based on splitters, have depth O(n), and quadratic step complexity. Other type of recursive algorithms? Programming languages for recursive algorithms? Many other interesting question...

215

216 Thank you

Relationships Between Broadcast and Shared Memory in Reliable Anonymous Distributed Systems

Relationships Between Broadcast and Shared Memory in Reliable Anonymous Distributed Systems Relationships Between Broadcast and Shared Memory in Reliable Anonymous Distributed Systems James Aspnes, Yale University Faith Ellen Fich, University of Toronto Eric Ruppert, York University Anonymity

More information

The Committee Decision Problem

The Committee Decision Problem The Committee Decision Problem Eli Gafni, Sergio Rajsbaum, Michel Raynal,andCorentinTravers Department of Computer Science, UCLA, Los Angeles, CA 90095, USA Instituto de Matemáticas, UNAM, D. F. 0450,

More information

Initial Assumptions. Modern Distributed Computing. Network Topology. Initial Input

Initial Assumptions. Modern Distributed Computing. Network Topology. Initial Input Initial Assumptions Modern Distributed Computing Theory and Applications Ioannis Chatzigiannakis Sapienza University of Rome Lecture 4 Tuesday, March 6, 03 Exercises correspond to problems studied during

More information

Distributed Algorithms 6.046J, Spring, Nancy Lynch

Distributed Algorithms 6.046J, Spring, Nancy Lynch Distributed Algorithms 6.046J, Spring, 205 Nancy Lynch What are Distributed Algorithms? Algorithms that run on networked processors, or on multiprocessors that share memory. They solve many kinds of problems:

More information

Verteilte Systeme/Distributed Systems Ch. 5: Various distributed algorithms

Verteilte Systeme/Distributed Systems Ch. 5: Various distributed algorithms Verteilte Systeme/Distributed Systems Ch. 5: Various distributed algorithms Holger Karl Computer Networks Group Universität Paderborn Goal of this chapter Apart from issues in distributed time and resulting

More information

Parallélisme. Aim of the talk. Decision tasks. Example: consensus

Parallélisme. Aim of the talk. Decision tasks. Example: consensus Parallélisme Aim of the talk Geometry and Distributed Systems Can we implement some functions on some distributed architecture, even if there are some crashes? Eric Goubault Commissariat à l Energie Atomique

More information

Synchrony Weakened by Message Adversaries vs Asynchrony Enriched with Failure Detectors. Michel Raynal, Julien Stainer

Synchrony Weakened by Message Adversaries vs Asynchrony Enriched with Failure Detectors. Michel Raynal, Julien Stainer Synchrony Weakened by Message Adversaries vs Asynchrony Enriched with Failure Detectors Michel Raynal, Julien Stainer Synchrony Weakened by Message Adversaries vs Asynchrony Enriched with Failure Detectors

More information

6.852: Distributed Algorithms Fall, Class 21

6.852: Distributed Algorithms Fall, Class 21 6.852: Distributed Algorithms Fall, 2009 Class 21 Today s plan Wait-free synchronization. The wait-free consensus hierarchy Universality of consensus Reading: [Herlihy, Wait-free synchronization] (Another

More information

Distributed Algorithms (PhD course) Consensus SARDAR MUHAMMAD SULAMAN

Distributed Algorithms (PhD course) Consensus SARDAR MUHAMMAD SULAMAN Distributed Algorithms (PhD course) Consensus SARDAR MUHAMMAD SULAMAN Consensus The processes use consensus to agree on a common value out of values they initially propose Reaching consensus is one of

More information

Combinatorial Algebraic Topology and applications to Distributed Computing

Combinatorial Algebraic Topology and applications to Distributed Computing Combinatorial Algebraic Topology and applications to Distributed Computing Dmitry Feichtner-Kozlov University of Bremen XXIst Oporto Meeting on Geometry, Topology and Physics LISSABON 2015 Lecture I: Simplicial

More information

Wait-Free Computability for General Tasks

Wait-Free Computability for General Tasks Wait-Free Computability for General Tasks Companion slides for Distributed Computing Through Combinatorial Topology Maurice Herlihy & Dmitry Kozlov & Sergio Rajsbaum 1 Road Map Inherently colored tasks

More information

Distributed Computing through Combinatorial Topology. Maurice Herlihy & Dmitry Kozlov & Sergio Rajsbaum

Distributed Computing through Combinatorial Topology. Maurice Herlihy & Dmitry Kozlov & Sergio Rajsbaum Distributed Computing through Maurice Herlihy & Dmitry Kozlov & Sergio Rajsbaum 1 In the Beginning 1 0 1 1 0 1 0 a computer was just a Turing machine Distributed Computing though 2 Today??? Computing is

More information

From Bounded to Unbounded Concurrency Objects and Back

From Bounded to Unbounded Concurrency Objects and Back From Bounded to Unbounded Concurrency Objects and Back Yehuda Afek afek@post.tau.ac.il Adam Morrison adamx@post.tau.ac.il School of Computer Science Tel Aviv University Guy Wertheim vgvertex@gmail.com

More information

Subconsensus Tasks: Renaming is Weaker than Set Agreement

Subconsensus Tasks: Renaming is Weaker than Set Agreement Subconsensus Tasks: enaming is Weaker than Set Agreement Eli Gafni 1, Sergio ajsbaum 2, and Maurice Herlihy 3 1 Computer Science Department UCLA Los Angles, CA 90095 eli@cs.ucla.edu 2 Instituto de Matemáticas,

More information

Concurrent Programming: Algorithms, Principles, and Foundations

Concurrent Programming: Algorithms, Principles, and Foundations Concurrent Programming: Algorithms, Principles, and Foundations Algorithms, Principles, and Foundations Bearbeitet von Michel Raynal 1. Auflage 2012. Buch. xxxii, 516 S. Hardcover ISBN 978 3 642 32026

More information

Introduction to Distributed Systems Seif Haridi

Introduction to Distributed Systems Seif Haridi Introduction to Distributed Systems Seif Haridi haridi@kth.se What is a distributed system? A set of nodes, connected by a network, which appear to its users as a single coherent system p1 p2. pn send

More information

Concurrent specifications beyond linearizability

Concurrent specifications beyond linearizability Concurrent specifications beyond linearizability Éric Goubault Jérémy Ledent Samuel Mimram École Polytechnique, France OPODIS 2018, Hong Kong December 19, 2018 1 / 14 Objects Processes communicate through

More information

A class C of objects is universal for some set E of classes if and only if any object in E can be implemented with objects of C (and registers)

A class C of objects is universal for some set E of classes if and only if any object in E can be implemented with objects of C (and registers) Universality A class C of objects is universal for some set E of classes if and only if any object in E can be implemented with objects of C (and registers) n-consensus is universal for n-objects (objects

More information

CMSC 132: Object-Oriented Programming II. Recursive Algorithms. Department of Computer Science University of Maryland, College Park

CMSC 132: Object-Oriented Programming II. Recursive Algorithms. Department of Computer Science University of Maryland, College Park CMSC 132: Object-Oriented Programming II Recursive Algorithms Department of Computer Science University of Maryland, College Park Recursion Recursion is a strategy for solving problems A procedure that

More information

Schlegel Diagram and Optimizable Immediate Snapshot Protocol

Schlegel Diagram and Optimizable Immediate Snapshot Protocol Schlegel Diagram and Optimizable Immediate Snapshot Protocol Susumu Nishimura Dept. of Mathematics, Graduate School of Science, Kyoto University, Japan susumu@math.kyoto-u.ac.jp Abstract In the topological

More information

Algorithms that Adapt to Contention

Algorithms that Adapt to Contention Algorithms that Adapt to Contention Hagit Attiya Department of Computer Science Technion June 2003 Adaptive Algorithms / Hagit Attiya 1 Fast Mutex Algorithm [Lamport, 1986] In a well-designed system, most

More information

Replication in Distributed Systems

Replication in Distributed Systems Replication in Distributed Systems Replication Basics Multiple copies of data kept in different nodes A set of replicas holding copies of a data Nodes can be physically very close or distributed all over

More information

Consensus and agreement algorithms

Consensus and agreement algorithms CHAPTER 4 Consensus and agreement algorithms 4. Problem definition Agreement among the processes in a distributed system is a fundamental requirement for a wide range of applications. Many forms of coordination

More information

Distributed Algorithms. Partha Sarathi Mandal Department of Mathematics IIT Guwahati

Distributed Algorithms. Partha Sarathi Mandal Department of Mathematics IIT Guwahati Distributed Algorithms Partha Sarathi Mandal Department of Mathematics IIT Guwahati Thanks to Dr. Sukumar Ghosh for the slides Distributed Algorithms Distributed algorithms for various graph theoretic

More information

The Topological Structure of Asynchronous Computability

The Topological Structure of Asynchronous Computability The Topological Structure of Asynchronous Computability MAURICE HERLIHY Brown University, Providence, Rhode Island AND NIR SHAVIT Tel-Aviv University, Tel-Aviv Israel Abstract. We give necessary and sufficient

More information

COMP3121/3821/9101/ s1 Assignment 1

COMP3121/3821/9101/ s1 Assignment 1 Sample solutions to assignment 1 1. (a) Describe an O(n log n) algorithm (in the sense of the worst case performance) that, given an array S of n integers and another integer x, determines whether or not

More information

Distributed Computing over Communication Networks: Leader Election

Distributed Computing over Communication Networks: Leader Election Distributed Computing over Communication Networks: Leader Election Motivation Reasons for electing a leader? Reasons for not electing a leader? Motivation Reasons for electing a leader? Once elected, coordination

More information

Fundamental mathematical techniques reviewed: Mathematical induction Recursion. Typically taught in courses such as Calculus and Discrete Mathematics.

Fundamental mathematical techniques reviewed: Mathematical induction Recursion. Typically taught in courses such as Calculus and Discrete Mathematics. Fundamental mathematical techniques reviewed: Mathematical induction Recursion Typically taught in courses such as Calculus and Discrete Mathematics. Techniques introduced: Divide-and-Conquer Algorithms

More information

GIAN Course on Distributed Network Algorithms. Spanning Tree Constructions

GIAN Course on Distributed Network Algorithms. Spanning Tree Constructions GIAN Course on Distributed Network Algorithms Spanning Tree Constructions Stefan Schmid @ T-Labs, 2011 Spanning Trees Attactive infrastructure : sparse subgraph ( loop-free backbone ) connecting all nodes.

More information

Recursion. Chapter 7

Recursion. Chapter 7 Recursion Chapter 7 Chapter Objectives To understand how to think recursively To learn how to trace a recursive method To learn how to write recursive algorithms and methods for searching arrays To learn

More information

Consensus Problem. Pradipta De

Consensus Problem. Pradipta De Consensus Problem Slides are based on the book chapter from Distributed Computing: Principles, Paradigms and Algorithms (Chapter 14) by Kshemkalyani and Singhal Pradipta De pradipta.de@sunykorea.ac.kr

More information

Distributed Algorithms 6.046J, Spring, 2015 Part 2. Nancy Lynch

Distributed Algorithms 6.046J, Spring, 2015 Part 2. Nancy Lynch Distributed Algorithms 6.046J, Spring, 2015 Part 2 Nancy Lynch 1 This Week Synchronous distributed algorithms: Leader Election Maximal Independent Set Breadth-First Spanning Trees Shortest Paths Trees

More information

An Introductory Tutorial to Concurrency-Related Distributed Recursion

An Introductory Tutorial to Concurrency-Related Distributed Recursion An Introductory Tutorial to Concurrency-Related Distributed Recursion Sergio Rajsbaum, Michel Raynal To cite this version: Sergio Rajsbaum, Michel Raynal. An Introductory Tutorial to Concurrency-Related

More information

Computing with Infinitely Many Processes

Computing with Infinitely Many Processes Computing with Infinitely Many Processes Michael Merritt Gadi Taubenfeld December 5, 2013 Abstract We explore four classic problems in concurrent computing (election, mutual exclusion, consensus, and naming)

More information

The divide and conquer strategy has three basic parts. For a given problem of size n,

The divide and conquer strategy has three basic parts. For a given problem of size n, 1 Divide & Conquer One strategy for designing efficient algorithms is the divide and conquer approach, which is also called, more simply, a recursive approach. The analysis of recursive algorithms often

More information

Breadth-first heuristic search. Paper by Rong Zhou, Eric A. Hansen Presentation by Salomé Simon

Breadth-first heuristic search. Paper by Rong Zhou, Eric A. Hansen Presentation by Salomé Simon Breadth-first heuristic search Paper by Rong Zhou, Eric A. Hansen Presentation by Salomé Simon Breadth-first tree search 1 2 3 4 5 6 7 Used for search problems with uniform edge cost Prerequisite for presented

More information

DISTRIBUTED COMPUTING COLUMN. Stefan Schmid TU Berlin & T-Labs, Germany

DISTRIBUTED COMPUTING COLUMN. Stefan Schmid TU Berlin & T-Labs, Germany DISTRIBUTED COMPUTING COLUMN Stefan Schmid TU Berlin & T-Labs, Germany stefan.schmid@tu-berlin.de 1 The Renaming Problem: Recent Developments and Open Questions Dan Alistarh (Microsoft Research) 1 Introduction

More information

Solving Linear Recurrence Relations (8.2)

Solving Linear Recurrence Relations (8.2) EECS 203 Spring 2016 Lecture 18 Page 1 of 10 Review: Recurrence relations (Chapter 8) Last time we started in on recurrence relations. In computer science, one of the primary reasons we look at solving

More information

Reaching Consensus. Lecture The Problem

Reaching Consensus. Lecture The Problem Lecture 4 Reaching Consensus 4.1 The Problem In the previous lecture, we ve seen that consensus can t be solved in asynchronous systems. That means asking how can we solve consensus? is pointless. But

More information

17/05/2018. Outline. Outline. Divide and Conquer. Control Abstraction for Divide &Conquer. Outline. Module 2: Divide and Conquer

17/05/2018. Outline. Outline. Divide and Conquer. Control Abstraction for Divide &Conquer. Outline. Module 2: Divide and Conquer Module 2: Divide and Conquer Divide and Conquer Control Abstraction for Divide &Conquer 1 Recurrence equation for Divide and Conquer: If the size of problem p is n and the sizes of the k sub problems are

More information

Optimal-Time Adaptive Strong Renaming, with Applications to Counting

Optimal-Time Adaptive Strong Renaming, with Applications to Counting Optimal-Time Adaptive Strong Renaming, with Applications to Counting [Extended Abstract] Dan Alistarh EPFL James Aspnes Yale University Keren Censor-Hillel MIT Morteza Zadimoghaddam MIT Seth Gilbert NUS

More information

Two-Phase Atomic Commitment Protocol in Asynchronous Distributed Systems with Crash Failure

Two-Phase Atomic Commitment Protocol in Asynchronous Distributed Systems with Crash Failure Two-Phase Atomic Commitment Protocol in Asynchronous Distributed Systems with Crash Failure Yong-Hwan Cho, Sung-Hoon Park and Seon-Hyong Lee School of Electrical and Computer Engineering, Chungbuk National

More information

Reading 8 : Recursion

Reading 8 : Recursion CS/Math 40: Introduction to Discrete Mathematics Fall 015 Instructors: Beck Hasti, Gautam Prakriya Reading 8 : Recursion 8.1 Recursion Recursion in computer science and mathematics refers to the idea of

More information

Distributed Systems. coordination Johan Montelius ID2201. Distributed Systems ID2201

Distributed Systems. coordination Johan Montelius ID2201. Distributed Systems ID2201 Distributed Systems ID2201 coordination Johan Montelius 1 Coordination Coordinating several threads in one node is a problem, coordination in a network is of course worse: failure of nodes and networks

More information

Recursive Definitions Structural Induction Recursive Algorithms

Recursive Definitions Structural Induction Recursive Algorithms Chapter 4 1 4.3-4.4 Recursive Definitions Structural Induction Recursive Algorithms 2 Section 4.1 3 Principle of Mathematical Induction Principle of Mathematical Induction: To prove that P(n) is true for

More information

GIAN Course on Distributed Network Algorithms. Spanning Tree Constructions

GIAN Course on Distributed Network Algorithms. Spanning Tree Constructions GIAN Course on Distributed Network Algorithms Spanning Tree Constructions Stefan Schmid @ T-Labs, 2011 Spanning Trees Attactive infrastructure : sparse subgraph ( loop-free backbone ) connecting all nodes.

More information

Distributed Algorithms (PhD course) Consensus SARDAR MUHAMMAD SULAMAN

Distributed Algorithms (PhD course) Consensus SARDAR MUHAMMAD SULAMAN Distributed Algorithms (PhD course) Consensus SARDAR MUHAMMAD SULAMAN Consensus (Recapitulation) A consensus abstraction is specified in terms of two events: 1. Propose ( propose v )» Each process has

More information

Parameterized graph separation problems

Parameterized graph separation problems Parameterized graph separation problems Dániel Marx Department of Computer Science and Information Theory, Budapest University of Technology and Economics Budapest, H-1521, Hungary, dmarx@cs.bme.hu Abstract.

More information

Simulating Few by Many: k-concurrency via k-set Consensus

Simulating Few by Many: k-concurrency via k-set Consensus Simulating Few by Many: k-concurrency via k-set Consensus Eli Gafni May 29, 2007 Abstract We introduce a new novel emulation by which we show an equivalence between k-set Consensus and k-concurrency: Any

More information

10. EXTENDING TRACTABILITY

10. EXTENDING TRACTABILITY 0. EXTENDING TRACTABILITY finding small vertex covers solving NP-hard problems on trees circular arc coverings vertex cover in bipartite graphs Lecture slides by Kevin Wayne Copyright 005 Pearson-Addison

More information

FUTURE communication networks are expected to support

FUTURE communication networks are expected to support 1146 IEEE/ACM TRANSACTIONS ON NETWORKING, VOL 13, NO 5, OCTOBER 2005 A Scalable Approach to the Partition of QoS Requirements in Unicast and Multicast Ariel Orda, Senior Member, IEEE, and Alexander Sprintson,

More information

Lecture 3: Sorting 1

Lecture 3: Sorting 1 Lecture 3: Sorting 1 Sorting Arranging an unordered collection of elements into monotonically increasing (or decreasing) order. S = a sequence of n elements in arbitrary order After sorting:

More information

BYZANTINE GENERALS BYZANTINE GENERALS (1) A fable: Michał Szychowiak, 2002 Dependability of Distributed Systems (Byzantine agreement)

BYZANTINE GENERALS BYZANTINE GENERALS (1) A fable: Michał Szychowiak, 2002 Dependability of Distributed Systems (Byzantine agreement) BYZANTINE GENERALS (1) BYZANTINE GENERALS A fable: BYZANTINE GENERALS (2) Byzantine Generals Problem: Condition 1: All loyal generals decide upon the same plan of action. Condition 2: A small number of

More information

Recursion defining an object (or function, algorithm, etc.) in terms of itself. Recursion can be used to define sequences

Recursion defining an object (or function, algorithm, etc.) in terms of itself. Recursion can be used to define sequences Section 5.3 1 Recursion 2 Recursion Recursion defining an object (or function, algorithm, etc.) in terms of itself. Recursion can be used to define sequences Previously sequences were defined using a specific

More information

Recursion. Chapter 7. Copyright 2012 by Pearson Education, Inc. All rights reserved

Recursion. Chapter 7. Copyright 2012 by Pearson Education, Inc. All rights reserved Recursion Chapter 7 Contents What Is Recursion? Tracing a Recursive Method Recursive Methods That Return a Value Recursively Processing an Array Recursively Processing a Linked Chain The Time Efficiency

More information

Simulating Few by Many: Limited Concurrency = Set Consensus (Extended Abstract)

Simulating Few by Many: Limited Concurrency = Set Consensus (Extended Abstract) Simulating Few by Many: Limited Concurrency = Set Consensus (Extended Abstract) Eli Gafni, UCLA Rachid Guerraoui, EPFL May 5, 2009 Abstract Perfection is the enemy of the good. Most backoff schemes wait

More information

Read-Write Memory and k-set Consensus as an Affine Task

Read-Write Memory and k-set Consensus as an Affine Task Read-Write Memory and k-set Consensus as an Affine Task Eli Gafni 1, Yuan He 2, Petr Kuznetsov 3, and Thibault Rieutord 4 1 UCLA, Los Angeles, CA, USA eli@ucla.edu 2 UCLA, Los Angeles, CA, USA yuan.he@ucla.edu

More information

Randomized Algorithms

Randomized Algorithms Randomized Algorithms Last time Network topologies Intro to MPI Matrix-matrix multiplication Today MPI I/O Randomized Algorithms Parallel k-select Graph coloring Assignment 2 Parallel I/O Goal of Parallel

More information

CSE 417 Branch & Bound (pt 4) Branch & Bound

CSE 417 Branch & Bound (pt 4) Branch & Bound CSE 417 Branch & Bound (pt 4) Branch & Bound Reminders > HW8 due today > HW9 will be posted tomorrow start early program will be slow, so debugging will be slow... Review of previous lectures > Complexity

More information

Anonymous and Fault-Tolerant Shared-Memory Computing

Anonymous and Fault-Tolerant Shared-Memory Computing Distributed Computing manuscript No. (will be inserted by the editor) Rachid Guerraoui Eric Ruppert Anonymous and Fault-Tolerant Shared-Memory Computing the date of receipt and acceptance should be inserted

More information

would be included in is small: to be exact. Thus with probability1, the same partition n+1 n+1 would be produced regardless of whether p is in the inp

would be included in is small: to be exact. Thus with probability1, the same partition n+1 n+1 would be produced regardless of whether p is in the inp 1 Introduction 1.1 Parallel Randomized Algorihtms Using Sampling A fundamental strategy used in designing ecient algorithms is divide-and-conquer, where that input data is partitioned into several subproblems

More information

Instructions. Notation. notation: In particular, t(i, 2) = 2 2 2

Instructions. Notation. notation: In particular, t(i, 2) = 2 2 2 Instructions Deterministic Distributed Algorithms, 10 21 May 2010, Exercises http://www.cs.helsinki.fi/jukka.suomela/dda-2010/ Jukka Suomela, last updated on May 20, 2010 exercises are merely suggestions

More information

THE FIRST APPROXIMATED DISTRIBUTED ALGORITHM FOR THE MINIMUM DEGREE SPANNING TREE PROBLEM ON GENERAL GRAPHS. and

THE FIRST APPROXIMATED DISTRIBUTED ALGORITHM FOR THE MINIMUM DEGREE SPANNING TREE PROBLEM ON GENERAL GRAPHS. and International Journal of Foundations of Computer Science c World Scientific Publishing Company THE FIRST APPROXIMATED DISTRIBUTED ALGORITHM FOR THE MINIMUM DEGREE SPANNING TREE PROBLEM ON GENERAL GRAPHS

More information

Self Stabilization. CS553 Distributed Algorithms Prof. Ajay Kshemkalyani. by Islam Ismailov & Mohamed M. Ali

Self Stabilization. CS553 Distributed Algorithms Prof. Ajay Kshemkalyani. by Islam Ismailov & Mohamed M. Ali Self Stabilization CS553 Distributed Algorithms Prof. Ajay Kshemkalyani by Islam Ismailov & Mohamed M. Ali Introduction There is a possibility for a distributed system to go into an illegitimate state,

More information

Recursion Chapter 3.5

Recursion Chapter 3.5 Recursion Chapter 3.5-1 - Outline Induction Linear recursion Example 1: Factorials Example 2: Powers Example 3: Reversing an array Binary recursion Example 1: The Fibonacci sequence Example 2: The Tower

More information

HOMEWORK #4 SOLUTIONS - MATH 4160

HOMEWORK #4 SOLUTIONS - MATH 4160 HOMEWORK #4 SOLUTIONS - MATH 4160 DUE: FRIDAY MARCH 7, 2002 AT 10:30AM Enumeration problems. (1 How many different ways are there of labeling the vertices of the following trees so that the graphs are

More information

Constraint Satisfaction Problems

Constraint Satisfaction Problems Constraint Satisfaction Problems Search and Lookahead Bernhard Nebel, Julien Hué, and Stefan Wölfl Albert-Ludwigs-Universität Freiburg June 4/6, 2012 Nebel, Hué and Wölfl (Universität Freiburg) Constraint

More information

Computing with Infinitely Many Processes under assumptions on concurrency and participation -M.Merritt&G.Taubenfeld. Dean Christakos & Deva Seetharam

Computing with Infinitely Many Processes under assumptions on concurrency and participation -M.Merritt&G.Taubenfeld. Dean Christakos & Deva Seetharam Computing with Infinitely Many Processes under assumptions on concurrency and participation -M.Merritt&G.Taubenfeld Dean Christakos & Deva Seetharam November 25, 2003 Abstract This paper explores four

More information

21. Distributed Algorithms

21. Distributed Algorithms 21. Distributed Algorithms We dene a distributed system as a collection of individual computing devices that can communicate with each other [2]. This denition is very broad, it includes anything, from

More information

Reconfiguring Replicated Atomic Storage: A Tutorial

Reconfiguring Replicated Atomic Storage: A Tutorial Reconfiguring Replicated Atomic Storage: A Tutorial Marcos K. Aguilera Idit Keidar Dahlia Malkhi Jean-Philippe Martin Alexander Shraer 1 Microsoft Research Silicon Valley Technion Israel Institute of Technology

More information

Consistency and Set Intersection

Consistency and Set Intersection Consistency and Set Intersection Yuanlin Zhang and Roland H.C. Yap National University of Singapore 3 Science Drive 2, Singapore {zhangyl,ryap}@comp.nus.edu.sg Abstract We propose a new framework to study

More information

University of the Western Cape Department of Computer Science

University of the Western Cape Department of Computer Science University of the Western Cape Department of Computer Science Algorithms and Complexity CSC212 Paper II Final Examination 13 November 2015 Time: 90 Minutes. Marks: 100. UWC number Surname, first name Mark

More information

Introduction to the Lambda Calculus

Introduction to the Lambda Calculus Introduction to the Lambda Calculus Overview: What is Computability? Church s Thesis The Lambda Calculus Scope and lexical address The Church-Rosser Property Recursion References: Daniel P. Friedman et

More information

6. Asymptotics: The Big-O and Other Notations

6. Asymptotics: The Big-O and Other Notations Chapter 7 SEARCHING 1. Introduction, Notation 2. Sequential Search 3. Binary Search 4. Comparison Trees 5. Lower Bounds 6. Asymptotics: The Big-O and Other Notations Outline Transp. 1, Chapter 7, Searching

More information

APCS-AB: Java. Recursion in Java December 12, week14 1

APCS-AB: Java. Recursion in Java December 12, week14 1 APCS-AB: Java Recursion in Java December 12, 2005 week14 1 Check point Double Linked List - extra project grade Must turn in today MBCS - Chapter 1 Installation Exercises Analysis Questions week14 2 Scheme

More information

Constraint Satisfaction Problems

Constraint Satisfaction Problems Constraint Satisfaction Problems Frank C. Langbein F.C.Langbein@cs.cf.ac.uk Department of Computer Science Cardiff University 13th February 2001 Constraint Satisfaction Problems (CSPs) A CSP is a high

More information

CS 598: Communication Cost Analysis of Algorithms Lecture 15: Communication-optimal sorting and tree-based algorithms

CS 598: Communication Cost Analysis of Algorithms Lecture 15: Communication-optimal sorting and tree-based algorithms CS 598: Communication Cost Analysis of Algorithms Lecture 15: Communication-optimal sorting and tree-based algorithms Edgar Solomonik University of Illinois at Urbana-Champaign October 12, 2016 Defining

More information

Secure Multiparty Computation: Introduction. Ran Cohen (Tel Aviv University)

Secure Multiparty Computation: Introduction. Ran Cohen (Tel Aviv University) Secure Multiparty Computation: Introduction Ran Cohen (Tel Aviv University) Scenario 1: Private Dating Alice and Bob meet at a pub If both of them want to date together they will find out If Alice doesn

More information

How many leaves on the decision tree? There are n! leaves, because every permutation appears at least once.

How many leaves on the decision tree? There are n! leaves, because every permutation appears at least once. Chapter 8. Sorting in Linear Time Types of Sort Algorithms The only operation that may be used to gain order information about a sequence is comparison of pairs of elements. Quick Sort -- comparison-based

More information

Algorithmics. Some information. Programming details: Ruby desuka?

Algorithmics. Some information. Programming details: Ruby desuka? Algorithmics Bruno MARTIN, University of Nice - Sophia Antipolis mailto:bruno.martin@unice.fr http://deptinfo.unice.fr/~bmartin/mathmods.html Analysis of algorithms Some classical data structures Sorting

More information

Lecture 4: September 11, 2003

Lecture 4: September 11, 2003 Algorithmic Modeling and Complexity Fall 2003 Lecturer: J. van Leeuwen Lecture 4: September 11, 2003 Scribe: B. de Boer 4.1 Overview This lecture introduced Fixed Parameter Tractable (FPT) problems. An

More information

On the Complexity of the Policy Improvement Algorithm. for Markov Decision Processes

On the Complexity of the Policy Improvement Algorithm. for Markov Decision Processes On the Complexity of the Policy Improvement Algorithm for Markov Decision Processes Mary Melekopoglou Anne Condon Computer Sciences Department University of Wisconsin - Madison 0 West Dayton Street Madison,

More information

Distributed Computing Building Blocks for Rational Agents

Distributed Computing Building Blocks for Rational Agents Distributed Computing Building Blocks for Rational Agents Yehuda Afek, Yehonatan Ginzberg, Shir Landau Feibish, and Moshe Sulamy Blavatnik School of Computer Science, Tel-Aviv University, Israel afek@cs.tau.ac.il,

More information

Leader Election in Rings

Leader Election in Rings Leader Election Arvind Krishnamurthy Fall 2003 Leader Election in Rings Under different models: Synchronous vs. asynchronous Anonymous vs. non-anonymous (knowledge of unique id) Knowledge of n (non-uniform)

More information

Shared Memory. Chapter Model

Shared Memory. Chapter Model Chapter 5 Shared Memory In distributed computing, various different models exist. So far, the focus of the course was on loosely-coupled distributed systems such as the Internet, where nodes asynchronously

More information

IUSE Knowledge Test. 1. Demographic Questions. IUSE Knowledge Test. 2. Computational Thinking Knowledge Test

IUSE Knowledge Test. 1. Demographic Questions. IUSE Knowledge Test. 2. Computational Thinking Knowledge Test IUSE Knowledge Test 1. Demographic Questions Your student ID number will be erased from the data file after this survey is linked to the other surveys you have taken or will be taking. * 1. Please enter

More information

CSCI 5454, CU Boulder Samriti Kanwar Lecture April 2013

CSCI 5454, CU Boulder Samriti Kanwar Lecture April 2013 1. Byzantine Agreement Problem In the Byzantine agreement problem, n processors communicate with each other by sending messages over bidirectional links in order to reach an agreement on a binary value.

More information

Comparison Based Sorting Algorithms. Algorithms and Data Structures: Lower Bounds for Sorting. Comparison Based Sorting Algorithms

Comparison Based Sorting Algorithms. Algorithms and Data Structures: Lower Bounds for Sorting. Comparison Based Sorting Algorithms Comparison Based Sorting Algorithms Algorithms and Data Structures: Lower Bounds for Sorting Definition 1 A sorting algorithm is comparison based if comparisons A[i] < A[j], A[i] A[j], A[i] = A[j], A[i]

More information

Chapter 17. Methodology Logical Database Design for the Relational Model

Chapter 17. Methodology Logical Database Design for the Relational Model Chapter 17 Methodology Logical Database Design for the Relational Model Chapter 17 - Objectives How to derive a set of relations from a conceptual data model. How to validate these relations using the

More information

Dartmouth Computer Science Technical Report TR Chain Match: An Algorithm for Finding a Perfect Matching of a Regular Bipartite Multigraph

Dartmouth Computer Science Technical Report TR Chain Match: An Algorithm for Finding a Perfect Matching of a Regular Bipartite Multigraph Dartmouth Computer Science Technical Report TR2014-753 Chain Match: An Algorithm for Finding a Perfect Matching of a Regular Bipartite Multigraph Stefanie Ostrowski May 28, 2014 Abstract We consider the

More information

CSL 730: Parallel Programming

CSL 730: Parallel Programming CSL 73: Parallel Programming General Algorithmic Techniques Balance binary tree Partitioning Divid and conquer Fractional cascading Recursive doubling Symmetry breaking Pipelining 2 PARALLEL ALGORITHM

More information

Do you remember any iterative sorting methods? Can we produce a good sorting method by. We try to divide and conquer: break into subproblems

Do you remember any iterative sorting methods? Can we produce a good sorting method by. We try to divide and conquer: break into subproblems MERGESORT 315 Sorting Recursively Do you remember any iterative sorting methods? How fast are they? Can we produce a good sorting method by thinking recursively? We try to divide and conquer: break into

More information

CSE 331: Introduction to Algorithm Analysis and Design Graphs

CSE 331: Introduction to Algorithm Analysis and Design Graphs CSE 331: Introduction to Algorithm Analysis and Design Graphs 1 Graph Definitions Graph: A graph consists of a set of verticies V and a set of edges E such that: G = (V, E) V = {v 0, v 1,..., v n 1 } E

More information

Lecture 16: Sorting. CS178: Programming Parallel and Distributed Systems. April 2, 2001 Steven P. Reiss

Lecture 16: Sorting. CS178: Programming Parallel and Distributed Systems. April 2, 2001 Steven P. Reiss Lecture 16: Sorting CS178: Programming Parallel and Distributed Systems April 2, 2001 Steven P. Reiss I. Overview A. Before break we started talking about parallel computing and MPI 1. Basic idea of a

More information

Lecture 1 August 31, 2017

Lecture 1 August 31, 2017 CS 388R: Randomized Algorithms Fall 017 Lecture 1 August 31, 017 Prof. Eric Price Scribe: Garrett Goble, Daniel Brown NOTE: THESE NOTES HAVE NOT BEEN EDITED OR CHECKED FOR CORRECTNESS 1 Randomized Algorithms

More information

Greedy Algorithms 1. For large values of d, brute force search is not feasible because there are 2 d

Greedy Algorithms 1. For large values of d, brute force search is not feasible because there are 2 d Greedy Algorithms 1 Simple Knapsack Problem Greedy Algorithms form an important class of algorithmic techniques. We illustrate the idea by applying it to a simplified version of the Knapsack Problem. Informally,

More information

Byzantine Consensus in Directed Graphs

Byzantine Consensus in Directed Graphs Byzantine Consensus in Directed Graphs Lewis Tseng 1,3, and Nitin Vaidya 2,3 1 Department of Computer Science, 2 Department of Electrical and Computer Engineering, and 3 Coordinated Science Laboratory

More information

Combinatorial Search; Monte Carlo Methods

Combinatorial Search; Monte Carlo Methods Combinatorial Search; Monte Carlo Methods Parallel and Distributed Computing Department of Computer Science and Engineering (DEI) Instituto Superior Técnico May 02, 2016 CPD (DEI / IST) Parallel and Distributed

More information

Discrete Mathematics and Probability Theory Summer 2016 Dinh, Psomas, and Ye HW 2

Discrete Mathematics and Probability Theory Summer 2016 Dinh, Psomas, and Ye HW 2 CS 70 Discrete Mathematics and Probability Theory Summer 2016 Dinh, Psomas, and Ye HW 2 Due Tuesday July 5 at 1:59PM 1. (8 points: 3/5) Hit or miss For each of the claims and proofs below, state whether

More information

Foundations of Computer Science Spring Mathematical Preliminaries

Foundations of Computer Science Spring Mathematical Preliminaries Foundations of Computer Science Spring 2017 Equivalence Relation, Recursive Definition, and Mathematical Induction Mathematical Preliminaries Mohammad Ashiqur Rahman Department of Computer Science College

More information