Algorithms that Adapt to Contention

Size: px
Start display at page:

Download "Algorithms that Adapt to Contention"

Transcription

1 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 of the time only a single process tries to get into the critical section Will be able to do so in a constant number of steps. When two processes try to get into the critical section? O(n) steps! June 2003 Adaptive Algorithms / Hagit Attiya 2

2 Asynchronous Shared-Memory Systems p 1 p 2 p 3 p 4 p 5 p 6 p 7 write read Need to collect information in order to coordinate When only few processes participate, reading one by one is prohibitive June 2003 Adaptive Algorithms / Hagit Attiya 3 Talk Outline How to be adaptive in a global sense? The splitter and its applications: renaming and collect. How to adapt dynamically? The sieve and its applications : renaming and collect. Extensions and connections. June 2003 Adaptive Algorithms / Hagit Attiya 4

3 Adaptive Step Complexity The step complexity of the algorithm depends only on the number of active processes. Total contention: The number of processes that (ever) take a step during the execution. June 2003 Adaptive Algorithms / Hagit Attiya 5 A Splitter [Moir & Anderson, 1995] k processes stop 1 process right k-1 processes left k-1 processes A process stops if it is alone in the splitter. June 2003 Adaptive Algorithms / Hagit Attiya 6

4 Splitter Implementation [Moir & Anderson, 1995 ][Lamport, 1986] 1. X = id i // write your identifier 2. if Y then return( right ) 3. Y = true 4. if ( X == id i ) // check identifier then return( stop ) 5. else return( left ) Requires O(1) read / write operations, and two shared registers. June 2003 Adaptive Algorithms / Hagit Attiya 7 Things to do with a Splitter A triangular matrix of splitters. Traverse array, starting at the top left, according to the values returned by splitters Until stopping in some splitter. left right June 2003 Adaptive Algorithms / Hagit Attiya 8

5 Things to do with a Splitter one process does not follow each direction. After k movements, a process is alone in a splitter. A process stops at row, column k At most O(k) steps. June 2003 Adaptive Algorithms / Hagit Attiya 9 Things to do with a Splitter: k 2 -Renaming Diagonal association of names with splitters Take a name k June 2003 Adaptive Algorithms / Hagit Attiya 10

6 Even Better Things with a Splitter: Store Associate a register with each splitter. A process writes its value in the splitter where it stops. Mark a splitter if accessed by some process June 2003 Adaptive Algorithms / Hagit Attiya 11 Even Better Things with a Splitter: Collect Associate a register with each splitter. The current values can be collected from the associated registers. Going in diagonals, until reaching an unmarked diagonal June 2003 Adaptive Algorithms / Hagit Attiya 12

7 Even Better Things with a Splitter: Store and Collect The first store accesses k splitters A collect may need to access k 2 splitters Improve? 15 June 2003 Adaptive Algorithms / Hagit Attiya 13 Binary Collect Tree left right n June 2003 Adaptive Algorithms / Hagit Attiya 14

8 Binary Collect Tree To store: traverse the tree until stops in some splitter. Later, write in the register associated with this splitter. June 2003 Adaptive Algorithms / Hagit Attiya 15 Binary Collect Tree To collect: DFS traverse the marked tree, and read the associated registers. Marked tree contains 2k-1 splitters. June 2003 Adaptive Algorithms / Hagit Attiya 16

9 Size of Marked Sub-Tree In a DFS ordering of the marked sub-tree, There is one acquired node (where a process stops), Between every pair of marked nodes. June 2003 Adaptive Algorithms / Hagit Attiya 17 Simple Things to Do with a Linear Collect Every algorithm with f(k) iterations of collect and store operations can be made adaptive. Atomic snapshots O(k) iterations. O(k 2 ) steps. Renaming. [Afek et al. 1991] June 2003 Adaptive Algorithms / Hagit Attiya 18

10 More Sophisticated Things to Do with a Linear Collect At each spine node: Collect If # processes label continue left Else continue right remember values. June 2003 Adaptive Algorithms / Hagit Attiya 19 More Sophisticated Things to Do with a Linear Collect At most 2, 4, 8, etc. processes move to the left sub tree. # participants in a sub-tree is bounded Perform an ordinary algorithm in sub-tree. 8 June 2003 Adaptive Algorithms / Hagit Attiya 20

11 More Sophisticated Things to Do with a Linear Collect If move right, at least 2, 4, 8, participants The step complexity is justified. 2 4 June 2003 Adaptive Algorithms / Hagit Attiya 21 More Sophisticated Things to Do Efficient Atomic Snapshot E.g., atomic snapshot algorithm [Attiya & Rachman, 1998] An O(k log k) atomic snapshot algorithm. June 2003 Adaptive Algorithms / Hagit Attiya 22

12 Be More Adaptive? In a long-lived algorithm processes come and go. What if many processes start the execution, then stop participating? then starts again then stops again June 2003 Adaptive Algorithms / Hagit Attiya 23 Who s Active Now? Interval contention during an operation: The number of processes (ever) taking a step during the operation. [Afek, Stupp &Touitou, 1999] June 2003 Adaptive Algorithms / Hagit Attiya 24

13 Who s Active Now? Point contention of an operation: Max number of processes taking steps together during the operation. Clearly, point contention interval contention. June 2003 Adaptive Algorithms / Hagit Attiya 25 Catching Processes with a Sieve A dynamic object, built for repeated usage. When a set of processes access the sieve concurrently at least one is caught by the sieve. Good synchronization properties. June 2003 Adaptive Algorithms / Hagit Attiya 26

14 Sieve: More Formally Returns a view of processes accessing the sieve concurrently. p 1 p 2 p 3 p4 p 5 A non-empty set of candidates C. A process returns either φ or C. At least one process p w C returns C. p w is a winner. p 1,p 2, p 3 p 1, p 2, p 3 June 2003 Adaptive Algorithms / Hagit Attiya 27 Sieve Properties Agreement on the set of candidates (safety). Synchronization. Exchange of information. Can be filled and emptied many times (longlived). An empty sieve catches at least one process (liveness). Adapting to point contention. June 2003 Adaptive Algorithms / Hagit Attiya 28

15 Sieve Implementation: Copies count Current copy of the sieve June 2003 Adaptive Algorithms / Hagit Attiya 29 Sieve Implementation: Doorway Restrict access to a copy only to simultaneously active processes. # processes inside the copy point contention inside Inside the copy, employ algorithms adaptive to total contention! June 2003 Adaptive Algorithms / Hagit Attiya 30

16 take an atomic snapshot write the returned view find minimal view C if all processes in C wrote their view return C else return φ Sieve Implementation: Candidates inside Atomic Atomic snapshot [Borowsky & Gafni] June 2003 Adaptive Algorithms / Hagit Attiya 31 take an atomic snapshot write the returned view find minimal view C if all processes in C wrote their view return C else return φ Sieve Implementation: Winners C June 2003 Adaptive Algorithms / Hagit Attiya 32

17 Sieve Implementation: Winners take an atomic snapshot write the returned view find minimal view C if all processes in C wrote their view return C else return φ C p i Last process in C to write a view is a winner. June 2003 Adaptive Algorithms / Hagit Attiya 33 Sieve Implementation: Managing the copies Candidates are synchronized (work together). Increase count by 1. Monotone When all candidates leave a copy, open the next copy. June 2003 Adaptive Algorithms / Hagit Attiya 34

18 Things to do with a Sieve: 2k 2 -Renaming Place sieves in a row n 1 return (4, rank in C) Agreement on set of candidates and uniqueness of copies. Uniqueness of names. June 2003 Adaptive Algorithms / Hagit Attiya 35 Things to do with a Sieve: 2k 2 -Renaming n 1 return (4, rank in C) Potential method shows that a process skips 2k-2 sieves. k is the point contention. Wins in sieve 2k-1. June 2003 Adaptive Algorithms / Hagit Attiya 36

19 Things to do with a Sieve: 2k 2 -Renaming n 1 Wins in sieve 2k-1. O(f(k)) step complexity. C includes at most k processes. Name 2k 2. return (4, rank in C) June 2003 Adaptive Algorithms / Hagit Attiya 37 Things to do with a Sieve: Store Place sieves in a row n 1 p w C Agreement on set of candidates and uniqueness of copies p w writes the values of all candidates in a register associated with the sieve. June 2003 Adaptive Algorithms / Hagit Attiya 38

20 Things to do with a Sieve: Collect n 1 Go over the associated registers and read June 2003 Adaptive Algorithms / Hagit Attiya 39 Things to do with a Sieve: Adaptive Collect? n 1 p w and all other operations complete. A collect still has to reach the splitter in which p w has written its value! June 2003 Adaptive Algorithms / Hagit Attiya 40

21 Bubble-Up [Afek, Stupp & Touitou, 2000] Before completing an operation, move information from far away sieves to the first sieve. June 2003 Adaptive Algorithms / Hagit Attiya 41 Other Things to do with a Sieve Sieve-based collect can be used to implement: Atomic snapshots. Immediate snapshots. Timestamps: The vector of copy numbers. Long-lived renaming. Polynomial step complexity (using collect). June 2003 Adaptive Algorithms / Hagit Attiya 42

22 What About Mutex? Cannot have adaptive step complexity Can have adaptive system response time. [Attiya & Bortnikov, 2002] Some techniques are similar. Renaming, adaptive binary tree (bottom-up!) June 2003 Adaptive Algorithms / Hagit Attiya 43 What s Next? Other problems. Snapshots, generic simulations Improve and simplify. Find good building blocks. Local step complexity! Use stronger primitives (C&S, LL/SC). [Afek, Dauber & Touitou, 1995] June 2003 Adaptive Algorithms / Hagit Attiya 44

23 Uniform Algorithms [Gafni, 2001] Adaptive algorithms can be also considered as algorithms that do not depend on the number of participants. Useful in the context of peer-to-peer systems, with no centralized control. A huge number of potential processes. Join and leave June 2003 Adaptive Algorithms / Hagit Attiya 45 Space: The New Frontier Our results are based on a collect algorithm. Either O(K 2 ) step complexity (K is total contention), Or exponential space complexity. A better collect algorithm? O(K) step complexity, and Polynomial space complexity. A lower bound proof? June 2003 Adaptive Algorithms / Hagit Attiya 46

24 This talk describes some of the results in: The Whole Story Attiya and Fouren, Adapting to Point Contention with a Sieve, Journal of the ACM, to appear. Attiya, Fouren and Gafni, An Adaptive Collect Algorithm with Applications, Distributed Computing, Vol. 15, No. 2 (2002). June 2003 Adaptive Algorithms / Hagit Attiya 47

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

Section 4 Concurrent Objects Correctness, Progress and Efficiency

Section 4 Concurrent Objects Correctness, Progress and Efficiency Section 4 Concurrent Objects Correctness, Progress and Efficiency CS586 - Panagiota Fatourou 1 Concurrent Objects A concurrent object is a data object shared by concurrently executing processes. Each object

More information

Partial Snapshot Objects

Partial Snapshot Objects Partial Snapshot Objects Hagit Attiya Technion Rachid Guerraoui EPFL Eric Ruppert York University ABSTRACT We introduce a generalization of the atomic snapshot object, which we call the partial snapshot

More information

Fully-Adaptive Algorithms for Long-Lived Renaming

Fully-Adaptive Algorithms for Long-Lived Renaming Fully-Adaptive Algorithms for Long-Lived Renaming Alex Brodsky 1, Faith Ellen 2, and Philipp Woelfel 2 1 Dept. of Applied Computer Science, University of Winnipeg, Winnipeg, Canada, a.brodsky@uwinnipeg.ca

More information

The Black-White Bakery Algorithm and related bounded-space, adaptive, local-spinning and FIFO algorithms

The Black-White Bakery Algorithm and related bounded-space, adaptive, local-spinning and FIFO algorithms The Black-White Bakery Algorithm and related bounded-space, adaptive, local-spinning and FIFO algorithms Gadi Taubenfeld The Interdisciplinary Center, P.O.Box 167 Herzliya 46150, Israel tgadi@idc.ac.il

More information

How Hard Is It to Take a Snapshot?

How Hard Is It to Take a Snapshot? How Hard Is It to Take a Snapshot? Faith Ellen Fich University of Toronto Toronto, Canada fich@cs.utoronto.ca Abstract. The snapshot object is an important and well-studied primitive in distributed computing.

More information

Faster than Optimal Snapshots (for a While)

Faster than Optimal Snapshots (for a While) Faster than Optimal Snapshots (for a While) Preliminary Version ABSTRACT James Aspnes Department of Computer Science, Yale University aspnes@cs.yale.edu Keren Censor-Hillel Computer Science and Artificial

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

We present an algorithm for implementing binary operations (of any type) from unary loadlinked

We present an algorithm for implementing binary operations (of any type) from unary loadlinked Improved Implementations of Binary Universal Operations Hagit Attiya and Eyal Dagan The Technion We present an algorithm for implementing binary operations (of any type) from unary loadlinked (LL) and

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

Coordination 1. To do. Mutual exclusion Election algorithms Next time: Global state. q q q

Coordination 1. To do. Mutual exclusion Election algorithms Next time: Global state. q q q Coordination 1 To do q q q Mutual exclusion Election algorithms Next time: Global state Coordination and agreement in US Congress 1798-2015 Process coordination How can processes coordinate their action?

More information

Distributed Systems. Rik Sarkar James Cheney Global State & Distributed Debugging February 3, 2014

Distributed Systems. Rik Sarkar James Cheney Global State & Distributed Debugging February 3, 2014 Distributed Systems Rik Sarkar James Cheney Global State & Distributed Debugging Global State: Consistent Cuts The global state is the combination of all process states and the states of the communication

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

Dr. Amotz Bar-Noy s Compendium of Algorithms Problems. Problems, Hints, and Solutions

Dr. Amotz Bar-Noy s Compendium of Algorithms Problems. Problems, Hints, and Solutions Dr. Amotz Bar-Noy s Compendium of Algorithms Problems Problems, Hints, and Solutions Chapter 1 Searching and Sorting Problems 1 1.1 Array with One Missing 1.1.1 Problem Let A = A[1],..., A[n] be an array

More information

CSE 486/586 Distributed Systems

CSE 486/586 Distributed Systems CSE 486/586 Distributed Systems Mutual Exclusion Steve Ko Computer Sciences and Engineering University at Buffalo CSE 486/586 Recap: Consensus On a synchronous system There s an algorithm that works. On

More information

Distributed Recursion

Distributed Recursion Distributed Recursion March 2011 Sergio Rajsbaum Instituto de Matemáticas, UNAM joint work with Eli Gafni, UCLA Introduction Though it is a new field, computer science already touches virtually every aspect

More information

Non-blocking Array-based Algorithms for Stacks and Queues!

Non-blocking Array-based Algorithms for Stacks and Queues! Non-blocking Array-based Algorithms for Stacks and Queues! Niloufar Shafiei! Department of Computer Science and Engineering York University ICDCN 09 Outline! Introduction! Stack algorithm! Queue algorithm!

More information

Time and Space Lower Bounds for Implementations Using k-cas

Time and Space Lower Bounds for Implementations Using k-cas Time and Space Lower Bounds for Implementations Using k-cas Hagit Attiya Danny Hendler September 12, 2006 Abstract This paper presents lower bounds on the time- and space-complexity of implementations

More information

The Complexity of Renaming

The Complexity of Renaming The Complexity of Renaming Dan Alistarh EPFL James Aspnes Yale Seth Gilbert NUS Rachid Guerraoui EPFL Abstract We study the complexity of renaming, a fundamental problem in distributed computing in which

More information

Abstract. are shared by a number of processes which operate in a totally asynchronous and

Abstract. are shared by a number of processes which operate in a totally asynchronous and Simple Atomic Snapshots A Linear Complexity Solution With Unbounded Time-Stamps Lefteris M. Kirousis y Paul Spirakis yz Philippas Tsigas x Abstract Let X 1 ::: X c be variables which together constitute

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

ADVANCE COURSE IN DISTRIBUTED COMPUTING Spring 2012 (Academic year 2011/2012). Prof. Y. Afek (afek at tau.ac...).

ADVANCE COURSE IN DISTRIBUTED COMPUTING Spring 2012 (Academic year 2011/2012). Prof. Y. Afek (afek at tau.ac...). ADVANCE COURSE IN DISTRIBUTED COMPUTING Spring 2012 (Academic year 2011/2012). Prof. Y. Afek (afek at tau.ac...). Course Home Page www.cs.tau.ac.il/ afek/dc12.html A graduate course exploring current topics

More information

A Polylogarithmic Concurrent Data Structures from Monotone Circuits

A Polylogarithmic Concurrent Data Structures from Monotone Circuits A Polylogarithmic Concurrent Data Structures from Monotone Circuits JAMES ASPNES, Yale University HAGIT ATTIYA, Technion KEREN CENSOR-HILLEL, MIT The paper presents constructions of useful concurrent data

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

k-abortable Objects: Progress under High Contention

k-abortable Objects: Progress under High Contention k-abortable Objects: Progress under High Contention Naama Ben-David 1, David Yu Cheng Chan 2, Vassos Hadzilacos 2, and Sam Toueg 2 Carnegie Mellon University 1 University of Toronto 2 Outline Background

More information

6.852: Distributed Algorithms Fall, Class 20

6.852: Distributed Algorithms Fall, Class 20 6.852: Distributed Algorithms Fall, 2009 Class 20 Today s plan z z z Transactional Memory Reading: Herlihy-Shavit, Chapter 18 Guerraoui, Kapalka, Chapters 1-4 Next: z z z Asynchronous networks vs asynchronous

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

Erez Petrank. Department of Computer Science. Haifa, Israel. Abstract

Erez Petrank. Department of Computer Science. Haifa, Israel. Abstract The Best of Both Worlds: Guaranteeing Termination in Fast Randomized Byzantine Agreement Protocols Oded Goldreich Erez Petrank Department of Computer Science Technion Haifa, Israel. Abstract All known

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

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 8: Semaphores, Monitors, & Condition Variables

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 8: Semaphores, Monitors, & Condition Variables CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2004 Lecture 8: Semaphores, Monitors, & Condition Variables 8.0 Main Points: Definition of semaphores Example of use

More information

Wait-Free Regular Storage from Byzantine Components

Wait-Free Regular Storage from Byzantine Components Wait-Free Regular Storage from Byzantine Components Ittai Abraham Gregory Chockler Idit Keidar Dahlia Malkhi July 26, 2006 Abstract We consider the problem of implementing a wait-free regular register

More information

Safety and liveness for critical sections

Safety and liveness for critical sections Safety and liveness for critical sections! At most k threads are concurrently in the critical section A. Safety B. Liveness C. Both! A thread that wants to enter the critical section will eventually succeed

More information

Universal Constructions that Ensure Disjoint-Access Parallelism and Wait-Freedom

Universal Constructions that Ensure Disjoint-Access Parallelism and Wait-Freedom Universal Constructions that Ensure Disjoint-Access Parallelism and Wait-Freedom Faith Ellen University of Toronto faith@cs.toronto.edu Alessia Milani University of Bordeaux milani@labri.fr Panagiota Fatourou

More information

The Space Complexity of Unbounded Timestamps

The Space Complexity of Unbounded Timestamps The Space Complexity of Unbounded Timestamps Faith Ellen 1, Panagiota Fatourou 2, and Eric Ruppert 3 1 University of Toronto, Canada 2 University of Ioannina, Greece 3 York University, Canada Abstract.

More information

CS Final Exam. Stanford University Computer Science Department. June 5, 2012 !!!!! SKIP 15 POINTS WORTH OF QUESTIONS.!!!!!

CS Final Exam. Stanford University Computer Science Department. June 5, 2012 !!!!! SKIP 15 POINTS WORTH OF QUESTIONS.!!!!! CS 240 - Final Exam Stanford University Computer Science Department June 5, 2012!!!!! SKIP 15 POINTS WORTH OF QUESTIONS.!!!!! This is an open-book (but closed-laptop) exam. You have 75 minutes. Cross out

More information

CS 347 Parallel and Distributed Data Processing

CS 347 Parallel and Distributed Data Processing CS 347 Parallel and Distributed Data Processing Spring 2016 Notes 5: Concurrency Control Topics Data Database design Queries Decomposition Localization Optimization Transactions Concurrency control Reliability

More information

Concurrency and OS recap. Based on Operating System Concepts with Java, Sixth Edition, 2003, Avi Silberschatz, Peter Galvin e Greg Gagne

Concurrency and OS recap. Based on Operating System Concepts with Java, Sixth Edition, 2003, Avi Silberschatz, Peter Galvin e Greg Gagne Concurrency and OS recap Based on Operating System Concepts with Java, Sixth Edition, 2003, Avi Silberschatz, Peter Galvin e Greg Gagne 64 Process Concept An operating system executes a variety of programs:

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

shared variable Choosing: array[1::n] of 0::1 initially 0; Number: array[1::n] of 0::1 initially 0 process p: =Λ 1» p» N Λ= private variable q: 1::N w

shared variable Choosing: array[1::n] of 0::1 initially 0; Number: array[1::n] of 0::1 initially 0 process p: =Λ 1» p» N Λ= private variable q: 1::N w Lamport on Mutual Exclusion: 27 Years of Planting Seeds James H. Anderson Department of Computer Science University of North Carolina at Chapel Hill Abstract Mutual exclusion is a topic that Leslie Lamport

More information

Generalized Lattice Agreement

Generalized Lattice Agreement ABSTRACT Jose M. Falerio Microsoft Research India t-josfal@microsoft.com Generalized Lattice Agreement G. Ramalingam Microsoft Research India grama@microsoft.com Lattice agreement is a key decision problem

More information

Clock Synchronization. Synchronization. Clock Synchronization Algorithms. Physical Clock Synchronization. Tanenbaum Chapter 6 plus additional papers

Clock Synchronization. Synchronization. Clock Synchronization Algorithms. Physical Clock Synchronization. Tanenbaum Chapter 6 plus additional papers Clock Synchronization Synchronization Tanenbaum Chapter 6 plus additional papers Fig 6-1. In a distributed system, each machine has its own clock. When this is the case, an event that occurred after another

More information

Today. A methodology for making fault-tolerant distributed systems.

Today. A methodology for making fault-tolerant distributed systems. Today A methodology for making fault-tolerant distributed systems. F. B. Schneider. Implementing Fault-Tolerant Services Using the State Machine Approach: A Tutorial. ACM Computing Surveys 22:319 (1990).

More information

Generating Fast Indulgent Algorithms

Generating Fast Indulgent Algorithms Generating Fast Indulgent Algorithms Dan Alistarh 1, Seth Gilbert 2, Rachid Guerraoui 1, and Corentin Travers 3 1 EPFL, Switzerland 2 National University of Singapore 3 Université de Bordeaux 1, France

More information

Route planning / Search Movement Group behavior Decision making

Route planning / Search Movement Group behavior Decision making Game AI Where is the AI Route planning / Search Movement Group behavior Decision making General Search Algorithm Design Keep a pair of set of states: One, the set of states to explore, called the open

More information

Process Synchroniztion Mutual Exclusion & Election Algorithms

Process Synchroniztion Mutual Exclusion & Election Algorithms Process Synchroniztion Mutual Exclusion & Election Algorithms Paul Krzyzanowski Rutgers University November 2, 2017 1 Introduction Process synchronization is the set of techniques that are used to coordinate

More information

Wait-Free Multi-Word Compare-And-Swap using Greedy Helping and Grabbing

Wait-Free Multi-Word Compare-And-Swap using Greedy Helping and Grabbing Wait-Free Multi-Word Compare-And-Swap using Greedy Helping and Grabbing H. Sundell 1 1 School of Business and Informatics, University of Borås, Borås, Sweden Abstract We present a new algorithm for implementing

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

CS 347 Parallel and Distributed Data Processing

CS 347 Parallel and Distributed Data Processing CS 347 Parallel and Distributed Data Processing Spring 2016 Notes 5: Concurrency Control Topics Data Database design Queries Decomposition Localization Optimization Transactions Concurrency control Reliability

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

Indistinguishability: Friend and Foe of Concurrent Data Structures. Hagit Attiya CS, Technion

Indistinguishability: Friend and Foe of Concurrent Data Structures. Hagit Attiya CS, Technion Indistinguishability: Friend and Foe of Concurrent Data Structures Hagit Attiya CS, Technion Uncertainty is a main obstacle for designing correct applications in concurrent systems Formally captured by

More information

Implementation of Clocks and Sensors

Implementation of Clocks and Sensors Implementation of Clocks and Sensors Term Paper EE 382N Distributed Systems Dr. Garg November 30, 2000 Submitted by: Yousuf Ahmed Chandresh Jain Onur Mutlu Global Predicate Detection in Distributed Systems

More information

Wait-Free Algorithms for Fast, Long-Lived Renaming. The University of North Carolina at Chapel Hill. Chapel Hill, North Carolina , USA

Wait-Free Algorithms for Fast, Long-Lived Renaming. The University of North Carolina at Chapel Hill. Chapel Hill, North Carolina , USA Wait-Free Algorithms for Fast, Long-Lived Renaming Mark Moir and James H. Anderson Department of Computer Science The University of North Carolina at Chapel Hill Chapel Hill, North Carolina 27599-3175,

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

We need a formal algorithm, as visual inspection is not sufficient Many algorithms for detecting cycles in a directed graph are known o Below is a

We need a formal algorithm, as visual inspection is not sufficient Many algorithms for detecting cycles in a directed graph are known o Below is a Deadlock Detection and Recovery o System does not try to prevent deadlocks Lets deadlocks occur, tries to detect them, then takes some action Use resource allocation graph and detect cycles to determine

More information

CMPSCI 250: Introduction to Computation. Lecture #24: General Search, DFS, and BFS David Mix Barrington 24 March 2014

CMPSCI 250: Introduction to Computation. Lecture #24: General Search, DFS, and BFS David Mix Barrington 24 March 2014 CMPSCI 250: Introduction to Computation Lecture #24: General Search, DFS, and BFS David Mix Barrington 24 March 2014 General Search, DFS, and BFS Four Examples of Search Problems State Spaces, Search,

More information

Incompatibility Dimensions and Integration of Atomic Commit Protocols

Incompatibility Dimensions and Integration of Atomic Commit Protocols The International Arab Journal of Information Technology, Vol. 5, No. 4, October 2008 381 Incompatibility Dimensions and Integration of Atomic Commit Protocols Yousef Al-Houmaily Department of Computer

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

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

Allocation adaptative de registres en utilisant un nombre linéaire de registres

Allocation adaptative de registres en utilisant un nombre linéaire de registres Allocation adaptative de registres en utilisant un nombre linéaire de registres Carole Delporte-Gallet, Hugues Fauconnier, Eli Gafni, Leslie Lamport To cite this version: Carole Delporte-Gallet, Hugues

More information

Lecture 8 Parallel Algorithms II

Lecture 8 Parallel Algorithms II Lecture 8 Parallel Algorithms II Dr. Wilson Rivera ICOM 6025: High Performance Computing Electrical and Computer Engineering Department University of Puerto Rico Original slides from Introduction to Parallel

More information

ECE 3574: Applied Software Design. Threads

ECE 3574: Applied Software Design. Threads ECE 3574: Applied Software Design Threads Today we are going to start looking at threads, multiple executing programs within the same process that share the code segment and heap, but have separate stacks.

More information

1 Undirected Vertex Geography UVG

1 Undirected Vertex Geography UVG Geography Start with a chip sitting on a vertex v of a graph or digraph G. A move consists of moving the chip to a neighbouring vertex. In edge geography, moving the chip from x to y deletes the edge (x,

More information

Distributed Systems Consensus

Distributed Systems Consensus Distributed Systems Consensus Amir H. Payberah amir@sics.se Amirkabir University of Technology (Tehran Polytechnic) Amir H. Payberah (Tehran Polytechnic) Consensus 1393/6/31 1 / 56 What is the Problem?

More information

Message Passing Improvements to Shared Address Space Thread Synchronization Techniques DAN STAFFORD, ROBERT RELYEA

Message Passing Improvements to Shared Address Space Thread Synchronization Techniques DAN STAFFORD, ROBERT RELYEA Message Passing Improvements to Shared Address Space Thread Synchronization Techniques DAN STAFFORD, ROBERT RELYEA Agenda Background Motivation Remote Memory Request Shared Address Synchronization Remote

More information

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this

More information

Non-blocking Array-based Algorithms for Stacks and Queues. Niloufar Shafiei

Non-blocking Array-based Algorithms for Stacks and Queues. Niloufar Shafiei Non-blocking Array-based Algorithms for Stacks and Queues Niloufar Shafiei Outline Introduction Concurrent stacks and queues Contributions New algorithms New algorithms using bounded counter values Correctness

More information

Advanced Multiprocessor Programming Project Topics and Requirements

Advanced Multiprocessor Programming Project Topics and Requirements Advanced Multiprocessor Programming Project Topics and Requirements Jesper Larsson Trä TU Wien May 5th, 2017 J. L. Trä AMP SS17, Projects 1 / 21 Projects Goal: Get practical, own experience with concurrent

More information

Synchronization. Chapter 5

Synchronization. Chapter 5 Synchronization Chapter 5 Clock Synchronization In a centralized system time is unambiguous. (each computer has its own clock) In a distributed system achieving agreement on time is not trivial. (it is

More information

Mutual Exclusion. 1 Formal problem definitions. Time notion CSE /17/2015. Outline of this lecture:

Mutual Exclusion. 1 Formal problem definitions. Time notion CSE /17/2015. Outline of this lecture: CSE 539 03/17/2015 Mutual Exclusion Lecture 15 Scribe: Son Dinh Outline of this lecture: 1. Formal problem definitions 2. Solution for 2 threads 3. Solution for n threads 4. Inherent costs of mutual exclusion

More information

CS505: Distributed Systems

CS505: Distributed Systems Department of Computer Science CS505: Distributed Systems Lecture 13: Distributed Transactions Outline Distributed Transactions Two Phase Commit and Three Phase Commit Non-blocking Atomic Commit with P

More information

Pattern Mining in Frequent Dynamic Subgraphs

Pattern Mining in Frequent Dynamic Subgraphs Pattern Mining in Frequent Dynamic Subgraphs Karsten M. Borgwardt, Hans-Peter Kriegel, Peter Wackersreuther Institute of Computer Science Ludwig-Maximilians-Universität Munich, Germany kb kriegel wackersr@dbs.ifi.lmu.de

More information

Thread Synchronization: Too Much Milk

Thread Synchronization: Too Much Milk Thread Synchronization: Too Much Milk 1 Implementing Critical Sections in Software Hard The following example will demonstrate the difficulty of providing mutual exclusion with memory reads and writes

More information

CS 550 Operating Systems Spring Concurrency Semaphores, Condition Variables, Producer Consumer Problem

CS 550 Operating Systems Spring Concurrency Semaphores, Condition Variables, Producer Consumer Problem 1 CS 550 Operating Systems Spring 2018 Concurrency Semaphores, Condition Variables, Producer Consumer Problem Semaphore Semaphore is a fundamental synchronization primitive used for Locking around critical

More information

Snapshot Protocols. Angel Alvarez. January 17, 2012

Snapshot Protocols. Angel Alvarez. January 17, 2012 Angel Alvarez January 17, 2012 1 We have seen how to monitor a distributed computation in a passive manner We have also seen how to do active monitoring, and an instance of an inconsistent observation

More information

Coordination and Agreement

Coordination and Agreement Coordination and Agreement Nicola Dragoni Embedded Systems Engineering DTU Informatics 1. Introduction 2. Distributed Mutual Exclusion 3. Elections 4. Multicast Communication 5. Consensus and related problems

More information

From a Store-collect Object and Ω to Efficient Asynchronous Consensus

From a Store-collect Object and Ω to Efficient Asynchronous Consensus From a Store-collect Object and Ω to Efficient Asynchronous Consensus Michel Raynal, Julien Stainer To cite this version: Michel Raynal, Julien Stainer. From a Store-collect Object and Ω to Efficient Asynchronous

More information

Shared Memory Synchronization

Shared Memory Synchronization Shared Memory Synchronization Gadi Taubenfeld The Interdisciplinary Center, P.O.Box 167, Herzliya 46150, Israel, tgadi@idc.ac.il, http://www.faculty.idc.ac.il/gadi/ September 1, 2008 Abstract. Synchronization

More information

Course Syllabus. Comp 735 Distributed and Concurrent Algorithms. Spring 2017

Course Syllabus. Comp 735 Distributed and Concurrent Algorithms. Spring 2017 Course Syllabus Comp 735 Distributed and Concurrent Algorithms Spring 2017 Meeting Place: SN 115 Meeting Time: 11:00 12:15, TuTh Course Web Page: http://www.cs.unc.edu/ anderson/teach/comp735 Instructor:

More information

Threading and Synchronization. Fahd Albinali

Threading and Synchronization. Fahd Albinali Threading and Synchronization Fahd Albinali Parallelism Parallelism and Pseudoparallelism Why parallelize? Finding parallelism Advantages: better load balancing, better scalability Disadvantages: process/thread

More information

Research Scholar, Gitam University, Visakhapatnam, Andhra Pradeshm, India *2

Research Scholar, Gitam University, Visakhapatnam, Andhra Pradeshm, India *2 IJESRT INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY Automatic Test case Generation from UML Activity Diagrams V.Mary Sumalatha *1, Dr G.S.V.P.Raju 2 1 Research Scholar, Gitam University,

More information

CS 3410 Ch 14 Graphs and Paths

CS 3410 Ch 14 Graphs and Paths CS 3410 Ch 14 Graphs and Paths Sections 14.1-14.3 Pages 527-552 Exercises 1,2,5,7-9 14.1 Definitions 1. A vertex (node) and an edge are the basic building blocks of a graph. Two vertices, (, ) may be connected

More information

Review implementation of Stable Matching Survey of common running times. Turn in completed problem sets. Jan 18, 2019 Sprenkle - CSCI211

Review implementation of Stable Matching Survey of common running times. Turn in completed problem sets. Jan 18, 2019 Sprenkle - CSCI211 Objectives Review implementation of Stable Matching Survey of common running times Turn in completed problem sets Jan 18, 2019 Sprenkle - CSCI211 1 Review: Asymptotic Analysis of Gale-Shapley Alg Not explicitly

More information

Semaphores. May 10, Mutual exclusion with shared variables is difficult (e.g. Dekker s solution).

Semaphores. May 10, Mutual exclusion with shared variables is difficult (e.g. Dekker s solution). Semaphores May 10, 2000 1 Introduction Mutual exclusion with shared variables is difficult (e.g. Dekker s solution). Generalising to an arbitrary number of processes is also nontrivial (e.g. Lamport s

More information

how to implement any concurrent data structure

how to implement any concurrent data structure how to implement any concurrent data structure marcos k. aguilera vmware jointly with irina calciu siddhartha sen mahesh balakrishnan Where to find more information about this work How to Implement Any

More information

How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor

How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor Leslie Lamport 1 Digital Equipment Corporation February 14, 1993 Minor revisions January 18, 1996 and September 14, 1996

More information

Concurrency: Deadlock and Starvation

Concurrency: Deadlock and Starvation Concurrency: Deadlock and Starvation Chapter 6 E&CE 354: Processes 1 Deadlock Deadlock = situation in which every process from a set is permanently blocked, i.e. cannot proceed with execution Common cause:

More information

Dynamic Atomic Storage Without Consensus

Dynamic Atomic Storage Without Consensus Dynamic Atomic Storage Without Consensus Marcos K. Aguilera Idit Keidar Dahlia Malkhi Alexander Shraer June 2, 2009 Abstract This paper deals with the emulation of atomic read/write (R/W) storage in dynamic

More information

Time- and Space-Ecient Randomized Consensus. James Aspnes. School of Computer Science. Carnegie-Mellon University. Pittsburgh, PA 15213

Time- and Space-Ecient Randomized Consensus. James Aspnes. School of Computer Science. Carnegie-Mellon University. Pittsburgh, PA 15213 Time- and Space-Ecient Randomized Consensus James Aspnes School of Computer Science Carnegie-Mellon University Pittsburgh, PA 15213 February 10, 1992 Abstract A protocol is presented which solves the randomized

More information

Heuristic (Informed) Search

Heuristic (Informed) Search Heuristic (Informed) Search (Where we try to choose smartly) R&N: Chap., Sect..1 3 1 Search Algorithm #2 SEARCH#2 1. INSERT(initial-node,Open-List) 2. Repeat: a. If empty(open-list) then return failure

More information

Process Synchronization

Process Synchronization Process Synchronization Mandar Mitra Indian Statistical Institute M. Mitra (ISI) Process Synchronization 1 / 28 Cooperating processes Reference: Section 4.4. Cooperating process: shares data with other

More information

Chapter 5 Asynchronous Concurrent Execution

Chapter 5 Asynchronous Concurrent Execution Chapter 5 Asynchronous Concurrent Execution Outline 5.1 Introduction 5.2 Mutual Exclusion 5.2.1 Java Multithreading Case Study 5.2.2 Critical Sections 5.2.3 Mutual Exclusion Primitives 5.3 Implementing

More information

Review. Review. Review. Constructing Reliable Registers From Unreliable Byzantine Components 12/15/08. Space of registers: Transformations:

Review. Review. Review. Constructing Reliable Registers From Unreliable Byzantine Components 12/15/08. Space of registers: Transformations: Review Constructing Reliable Registers From Unreliable Byzantine Components Space of registers: Dimension 1: binary vs. multivalued Dimension 2: safe vs. regular vs. atomic Seth Gilbert Dimension 3: SRSW

More information

A Concurrent Skip List Implementation with RTM and HLE

A Concurrent Skip List Implementation with RTM and HLE A Concurrent Skip List Implementation with RTM and HLE Fan Gao May 14, 2014 1 Background Semester Performed: Spring, 2014 Instructor: Maurice Herlihy The main idea of my project is to implement a skip

More information

Clock and ordering. Yang Wang

Clock and ordering. Yang Wang Clock and ordering Yang Wang Review Happened- before relation Consistent global state Chandy Lamport protocol New problem Monitor node sometimes needs to observe other nodes events continuously Distributed

More information

Linearizable Iterators

Linearizable Iterators Linearizable Iterators Supervised by Maurice Herlihy Abstract Petrank et. al. [5] provide a construction of lock-free, linearizable iterators for lock-free linked lists. We consider the problem of extending

More information

Heuristic (Informed) Search

Heuristic (Informed) Search Heuristic (Informed) Search (Where we try to choose smartly) R&N: Chap. 4, Sect. 4.1 3 1 Recall that the ordering of FRINGE defines the search strategy Search Algorithm #2 SEARCH#2 1. INSERT(initial-node,FRINGE)

More information

Department of Computer Science & Engineering Indian Institute of Technology Patna CS701 DISTRIBUTED SYSTEMS AND ALGORITHMS

Department of Computer Science & Engineering Indian Institute of Technology Patna CS701 DISTRIBUTED SYSTEMS AND ALGORITHMS CS701 DISTRIBUTED SYSTEMS AND ALGORITHMS 3-0-0-6 Basic concepts. Models of computation: shared memory and message passing systems, synchronous and asynchronous systems. Logical time and event ordering.

More information

Scalable GPU Graph Traversal!

Scalable GPU Graph Traversal! Scalable GPU Graph Traversal Duane Merrill, Michael Garland, and Andrew Grimshaw PPoPP '12 Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming Benwen Zhang

More information

Synchronization II: EventBarrier, Monitor, and a Semaphore. COMPSCI210 Recitation 4th Mar 2013 Vamsi Thummala

Synchronization II: EventBarrier, Monitor, and a Semaphore. COMPSCI210 Recitation 4th Mar 2013 Vamsi Thummala Synchronization II: EventBarrier, Monitor, and a Semaphore COMPSCI210 Recitation 4th Mar 2013 Vamsi Thummala Check point: Mission in progress Master synchronization techniques Develop best practices for

More information

Concurrent Computing

Concurrent Computing Concurrent Computing Introduction SE205, P1, 2017 Administrivia Language: (fr)anglais? Lectures: Fridays (15.09-03.11), 13:30-16:45, Amphi Grenat Web page: https://se205.wp.imt.fr/ Exam: 03.11, 15:15-16:45

More information