Distributed Recursion
|
|
- Evangeline Owen
- 5 years ago
- Views:
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 James Aspnes, Yale University Faith Ellen Fich, University of Toronto Eric Ruppert, York University Anonymity
More informationThe 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 informationInitial 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 informationDistributed 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 informationVerteilte 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 informationParallé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 informationSynchrony 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 information6.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 informationDistributed 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 informationCombinatorial 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 informationWait-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 informationDistributed 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 informationFrom 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 informationSubconsensus 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 informationConcurrent 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 informationIntroduction 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 informationConcurrent 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 informationA 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 informationCMSC 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 informationSchlegel 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 informationAlgorithms 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 informationReplication 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 informationConsensus 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 informationDistributed 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 informationThe 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 informationCOMP3121/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 informationDistributed 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 informationFundamental 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 informationGIAN 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 informationRecursion. 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 informationConsensus 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 informationDistributed 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 informationAn 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 informationComputing 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 informationThe 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 informationBreadth-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 informationDISTRIBUTED 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 informationSolving 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 informationReaching 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 information17/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 informationOptimal-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 informationTwo-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 informationReading 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 informationDistributed 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 informationRecursive 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 informationGIAN 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 informationDistributed 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 informationParameterized 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 informationSimulating 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 information10. 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 informationFUTURE 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 informationLecture 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 informationBYZANTINE 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 informationRecursion 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 informationRecursion. 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 informationSimulating 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 informationRead-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 informationRandomized 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 informationCSE 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 informationAnonymous 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 informationwould 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 informationInstructions. 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 informationTHE 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 informationSelf 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 informationRecursion 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 informationHOMEWORK #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 informationConstraint 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 informationComputing 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 information21. 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 informationReconfiguring 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 informationConsistency 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 informationUniversity 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 informationIntroduction 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 information6. 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 informationAPCS-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 informationConstraint 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 informationCS 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 informationSecure 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 informationHow 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 informationAlgorithmics. 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 informationLecture 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 informationOn 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 informationDistributed 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 informationLeader 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 informationShared 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 informationIUSE 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 informationCSCI 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 informationComparison 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 informationChapter 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 informationDartmouth 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 informationCSL 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 informationDo 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 informationCSE 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 informationLecture 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 informationLecture 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 informationGreedy 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 informationByzantine 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 informationCombinatorial 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 informationDiscrete 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 informationFoundations 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