Concurrent specifications beyond linearizability
|
|
- Gabriel Jones
- 5 years ago
- Views:
Transcription
1 Concurrent specifications beyond linearizability Éric Goubault Jérémy Ledent Samuel Mimram École Polytechnique, France OPODIS 2018, Hong Kong December 19, / 14
2 Objects Processes communicate through shared objects. For example: 2 / 14
3 Objects Processes communicate through shared objects. For example: Hardware: Read/Write registers, test&set, CAS,... 2 / 14
4 Objects Processes communicate through shared objects. For example: Hardware: Read/Write registers, test&set, CAS,... Data structures: lists, queues, hashmaps,... 2 / 14
5 Objects Processes communicate through shared objects. For example: Hardware: Read/Write registers, test&set, CAS,... Data structures: lists, queues, hashmaps,... Message passing interfaces 2 / 14
6 Objects Processes communicate through shared objects. For example: Hardware: Read/Write registers, test&set, CAS,... Data structures: lists, queues, hashmaps,... Message passing interfaces Immediate-snapshot, consensus, set-agreement,... 2 / 14
7 Objects Processes communicate through shared objects. For example: Hardware: Read/Write registers, test&set, CAS,... Data structures: lists, queues, hashmaps,... Message passing interfaces Immediate-snapshot, consensus, set-agreement,... Goal: can we implement object B using objects A 1,..., A k? 2 / 14
8 Objects Processes communicate through shared objects. For example: Hardware: Read/Write registers, test&set, CAS,... Data structures: lists, queues, hashmaps,... Message passing interfaces Immediate-snapshot, consensus, set-agreement,... Goal: can we implement object B using objects A 1,..., A k? We need to specify the behavior of the objects. 2 / 14
9 Concurrent specifications Idea: the specification of an object is the set of all the correct execution traces (Lamport, 1986). 3 / 14
10 Concurrent specifications Idea: the specification of an object is the set of all the correct execution traces (Lamport, 1986). P 0 push(0) ok pop() 2 pop() 0 P 1 P 2 push(2) ok 3 / 14
11 Concurrent specifications Idea: the specification of an object is the set of all the correct execution traces (Lamport, 1986). P 0 push(0) ok pop() 2 pop() 0 P 1 P 2 push(2) ok T = i push,0 0 r ok 0 i push,2 2 i pop 1 r 2 1 i pop 0 r ok 2 r 0 0 Trace formalism: Time is abstracted away. Alternation of invocations and responses on each process. 3 / 14
12 Concurrent specifications Idea: the specification of an object is the set of all the correct execution traces (Lamport, 1986). P 0 push(0) ok pop() 2 pop() 0 P 1 P 2 push(2) ok 3 / 14
13 Concurrent specifications Idea: the specification of an object is the set of all the correct execution traces (Lamport, 1986). P 0 push(0) ok pop() 2 pop() 0 P 1 P 2 push(2) ok Write T for the set of all execution traces. A concurrent specification is a subset σ T. 3 / 14
14 Concurrent specifications Idea: the specification of an object is the set of all the correct execution traces (Lamport, 1986). P 0 push(0) ok pop() 2 pop() 0 P 1 P 2 push(2) ok Write T for the set of all execution traces. A concurrent specification is a subset σ T. A program implements a specification σ if all the traces that it can produce belong to σ. 3 / 14
15 Linearizability (Herlihy & Wing, 1990) Lin SeqSpec ConcSpec Input: a sequential specification σ (e.g. list, queue,...). Output: a concurrent specification Lin(σ). 4 / 14
16 Linearizability (Herlihy & Wing, 1990) Lin SeqSpec ConcSpec Input: a sequential specification σ (e.g. list, queue,...). Output: a concurrent specification Lin(σ). P 0 P 1 P 2 4 / 14
17 Linearizability (Herlihy & Wing, 1990) Lin SeqSpec ConcSpec Input: a sequential specification σ (e.g. list, queue,...). Output: a concurrent specification Lin(σ). P 0 P 1 P 2 4 / 14
18 Linearizability (Herlihy & Wing, 1990) Lin SeqSpec ConcSpec Input: a sequential specification σ (e.g. list, queue,...). Output: a concurrent specification Lin(σ). P 0 P 1 P 2 Lin(σ) = {T concurrent trace T is linearizable w.r.t. σ} 4 / 14
19 Linearizability (Herlihy & Wing, 1990) Lin SeqSpec ConcSpec Input: a sequential specification σ (e.g. list, queue,...). Output: a concurrent specification Lin(σ). P 0 P 1 P 2 Lin(σ) = {T concurrent trace T is linearizable w.r.t. σ} Some objects are not linearizable! Their specification cannot be expressed as Lin(σ), for any σ. 4 / 14
20 Concurrent variants of linearizability Set-linearizability (Neiger, 1994) P 0 P 1 P 2 Can specify: exchanger, immediate snapshot, set agreement. 5 / 14
21 Concurrent variants of linearizability Set-linearizability (Neiger, 1994) P 0 P 1 P 2 Can specify: exchanger, immediate snapshot, set agreement. Cannot specify: validity, write-snapshot. 5 / 14
22 Concurrent variants of linearizability Set-linearizability (Neiger, 1994) P 0 P 1 P 2 Can specify: exchanger, immediate snapshot, set agreement. Cannot specify: validity, write-snapshot. Interval-linearizability (Castañeda, Rajsbaum, Raynal, 2015) P 0 P 1 P 2 5 / 14
23 Concurrent variants of linearizability Set-linearizability (Neiger, 1994) P 0 P 1 P 2 Can specify: exchanger, immediate snapshot, set agreement. Cannot specify: validity, write-snapshot. Interval-linearizability (Castañeda, Rajsbaum, Raynal, 2015) P 0 P 1 P 2 Can specify every task! 5 / 14
24 Overview Concurrent specifications 6 / 14
25 Overview Concurrent specifications Linearizability stack queue test&set 6 / 14
26 Overview Concurrent specifications Linearizability immediate snapshot stack exchanger queue test&set set-agreement 6 / 14
27 Overview Concurrent specifications Set-linearizability Linearizability immediate snapshot stack exchanger queue test&set set-agreement 6 / 14
28 Overview Concurrent specifications Set-linearizability write-snapshot Linearizability validity immediate snapshot stack exchanger queue test&set set-agreement 6 / 14
29 Overview Concurrent specifications Interval-linearizability Set-linearizability write-snapshot Linearizability validity immediate snapshot stack exchanger queue test&set set-agreement 6 / 14
30 Overview Concurrent specifications Interval-linearizability Set-linearizability write-snapshot Linearizability validity immediate snapshot stack exchanger queue? test&set set-agreement 6 / 14
31 Overview Concurrent specifications Prefix-closed concurrent specifications Interval-linearizability Set-linearizability write-snapshot Linearizability validity immediate snapshot stack exchanger queue? test&set set-agreement 6 / 14
32 Overview Concurrent specifications Prefix-closed concurrent specifications This talk: add a few more "desirable" properties Interval-linearizability Set-linearizability write-snapshot Linearizability validity immediate snapshot stack exchanger queue? test&set set-agreement 6 / 14
33 Overview Concurrent specifications Prefix-closed concurrent specifications Interval-linearizability Set-linearizability write-snapshot Linearizability validity immediate snapshot stack exchanger queue test&set set-agreement 6 / 14
34 Relevant concurrent specifications We write ConcSpec for the set of concurrent specifications σ T satisfying the following properties. (1) prefix-closure: if t t σ then t σ, (2) non-emptiness: ε σ, (3) receptivity: if t σ and t has no pending invocation of process i, then t i x i σ for every input value x, 7 / 14
35 Relevant concurrent specifications We write ConcSpec for the set of concurrent specifications σ T satisfying the following properties. (1) prefix-closure: if t t σ then t σ, (2) non-emptiness: ε σ, (3) receptivity: if t σ and t has no pending invocation of process i, then t i x i σ for every input value x, (4) totality: if t σ and t has a pending invocation of process i, then there exists an output x such that t ri x σ, 7 / 14
36 Relevant concurrent specifications We write ConcSpec for the set of concurrent specifications σ T satisfying the following properties. (1) prefix-closure: if t t σ then t σ, (2) non-emptiness: ε σ, (3) receptivity: if t σ and t has no pending invocation of process i, then t i x i σ for every input value x, (4) totality: if t σ and t has a pending invocation of process i, then there exists an output x such that t ri x σ, (5) σ has the expansion property. 7 / 14
37 Expansion of intervals A concurrent specification satisfies the expansion property if: 8 / 14
38 Expansion of intervals A concurrent specification satisfies the expansion property if: For any correct execution trace, P 0 P 1 P 2 a b c d e f g h i j k l 8 / 14
39 Expansion of intervals A concurrent specification satisfies the expansion property if: For any correct execution trace, P 0 P 1 P 2 a b c d e f g h i j k l if we expand the intervals, P 0 P 1 P 2 a c d e b g f j h k i l then the resulting trace is still correct. 8 / 14
40 Example: the Exchanger object Similar to the one available in Java 1 : A synchronization point at which threads can pair and swap elements within pairs. Here, we consider a wait-free variant. 1 java.util.concurrent.exchanger<v> 9 / 14
41 Example: the Exchanger object Similar to the one available in Java 1 : A synchronization point at which threads can pair and swap elements within pairs. Here, we consider a wait-free variant. A typical execution of the exchanger looks like this: P 0 exchange(0) 2 P 1 exchange(2) 0 P 2 exchange(42) exchange( a ) Fail Fail exchange( b ) c exchange( c ) b 1 java.util.concurrent.exchanger<v> 9 / 14
42 Example: the Exchanger object (2) The following execution is correct: exchange(0) P 0 P 1 P 2 Fail exchange(1) Fail exchange(2) Fail 10 / 14
43 Example: the Exchanger object (2) The following execution is correct: exchange(0) P 0 P 1 P 2 Fail exchange(1) Fail exchange(2) Fail Hence, according to the expansion property, exchange(0) P 0 exchange(1) P 1 exchange(2) P 2 Fail Fail Fail should be considered correct too! 10 / 14
44 Expansion is a desirable property We fix a set {A 1,..., A k } of shared objects, along with their concurrent specifications. 11 / 14
45 Expansion is a desirable property We fix a set {A 1,..., A k } of shared objects, along with their concurrent specifications. A program P using these objects can: call the objects, do local computations, use branching, loops. 11 / 14
46 Expansion is a desirable property We fix a set {A 1,..., A k } of shared objects, along with their concurrent specifications. A program P using these objects can: call the objects, do local computations, use branching, loops. Given a program P, we can define its semantics P, which is the set of execution traces that P can produce. 11 / 14
47 Expansion is a desirable property We fix a set {A 1,..., A k } of shared objects, along with their concurrent specifications. A program P using these objects can: call the objects, do local computations, use branching, loops. Given a program P, we can define its semantics P, which is the set of execution traces that P can produce. Theorem The semantics P of any program P has the expansion property. Moreover, if P is wait-free, then P ConcSpec. 11 / 14
48 Linearizability gives expansion for free Linearizability-based techniques always produce specifications which satisfy the expansion property. Theorem For every sequential specification σ, Lin(σ) ConcSpec. 12 / 14
49 Linearizability gives expansion for free Linearizability-based techniques always produce specifications which satisfy the expansion property. Theorem For every sequential specification σ, Lin(σ) ConcSpec. Proof. If some execution trace is linearizable, P 0 P 1 P 2 12 / 14
50 Linearizability gives expansion for free Linearizability-based techniques always produce specifications which satisfy the expansion property. Theorem For every sequential specification σ, Lin(σ) ConcSpec. Proof. If some execution trace is linearizable, P 0 P 1 P 2 12 / 14
51 Linearizability gives expansion for free Linearizability-based techniques always produce specifications which satisfy the expansion property. Theorem For every sequential specification σ, Lin(σ) ConcSpec. Proof. If some execution trace is linearizable, P 0 P 1 P 2 Then any trace obtained by expanding it is still linearizable. P 0 P 1 P 2 12 / 14
52 Linearizability gives expansion for free Linearizability-based techniques always produce specifications which satisfy the expansion property. Theorem For every sequential specification σ, Lin(σ) ConcSpec. Proof. If some execution trace is linearizable, P 0 P 1 P 2 Then any trace obtained by expanding it is still linearizable. P 0 P 1 P 2 12 / 14
53 A Galois connection SeqSpec ConcSpec Lin 13 / 14
54 A Galois connection U SeqSpec ConcSpec Lin 13 / 14
55 A Galois connection U SeqSpec Lin ConcSpec Theorem The maps Lin and U form a Galois connection: for every σ SeqSpec and τ ConcSpec, Lin(σ) τ σ U(τ) 13 / 14
56 Applications By the properties of Galois connections, Lin(U(Lin(σ))) = Lin(σ) This yields a simple criterion to check whether a given specification τ is linearizable: check whether Lin(U(τ)) = τ. 14 / 14
57 Applications By the properties of Galois connections, Lin(U(Lin(σ))) = Lin(σ) This yields a simple criterion to check whether a given specification τ is linearizable: check whether Lin(U(τ)) = τ. The Galois connection for interval linearizability has the following corollary: Theorem ConcSpec is the set of interval-linearizable specifications. 14 / 14
58 Thanks! 14 / 14
The Wait-Free Hierarchy
Jennifer L. Welch References 1 M. Herlihy, Wait-Free Synchronization, ACM TOPLAS, 13(1):124-149 (1991) M. Fischer, N. Lynch, and M. Paterson, Impossibility of Distributed Consensus with One Faulty Process,
More informationConcurrent Objects and Linearizability
Chapter 3 Concurrent Objects and Linearizability 3.1 Specifying Objects An object in languages such as Java and C++ is a container for data. Each object provides a set of methods that are the only way
More informationProving linearizability using forward simulations
Proving linearizability using forward simulations Ahmed Bouajjani 1, Michael Emmi 2, Constantin Enea 1, and Suha Orhun Mutluergil 3 1 IRIF, Univ. Paris Diderot, {abou,cenea}@irif.fr 2 Nokia Bell Labs,
More informationFork Sequential Consistency is Blocking
Fork Sequential Consistency is Blocking Christian Cachin Idit Keidar Alexander Shraer May 14, 2008 Abstract We consider an untrusted server storing shared data on behalf of clients. We show that no storage
More informationFork Sequential Consistency is Blocking
Fork Sequential Consistency is Blocking Christian Cachin Idit Keidar Alexander Shraer Novembe4, 008 Abstract We consider an untrusted server storing shared data on behalf of clients. We show that no storage
More informationLinearizability with ownership transfer
Linearizability with ownership transfer Hongseok Yang University of Oxford Joint work with Alexey Gotsman (IMDEA Software Institute, Spain) Concurrent libraries Encapsulate efficient concurrent algorithms.
More informationProving Linearizability Using Forward Simulations
Proving Linearizability Using Forward Simulations Ahmed Bouajjani 1, Michael Emmi 2, Constantin Enea 1(B), and Suha Orhun Mutluergil 3 1 IRIF, Univ. Paris Diderot, Paris, France {abou,cenea}@irif.fr 2
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 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 informationNon-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 informationSolo-Valency and the Cost of Coordination
Solo-Valency and the Cost of Coordination Danny Hendler Nir Shavit November 21, 2007 Abstract This paper introduces solo-valency, a variation on the valency proof technique originated by Fischer, Lynch,
More informationLinearizability of Persistent Memory Objects
Linearizability of Persistent Memory Objects Michael L. Scott Joint work with Joseph Izraelevitz & Hammurabi Mendes www.cs.rochester.edu/research/synchronization/ Workshop on the Theory of Transactional
More informationOverview of Lecture 4. Memory Models, Atomicity & Performance. Ben-Ari Concurrency Model. Dekker s Algorithm 4
Concurrent and Distributed Programming http://fmt.cs.utwente.nl/courses/cdp/ Overview of Lecture 4 2 Memory Models, tomicity & Performance HC 4 - Tuesday, 6 December 2011 http://fmt.cs.utwente.nl/~marieke/
More informationParallel Programming in Distributed Systems Or Distributed Systems in Parallel Programming
Parallel Programming in Distributed Systems Or Distributed Systems in Parallel Programming Philippas Tsigas Chalmers University of Technology Computer Science and Engineering Department Philippas Tsigas
More informationThe Relative Power of Synchronization Methods
Chapter 5 The Relative Power of Synchronization Methods So far, we have been addressing questions of the form: Given objects X and Y, is there a wait-free implementation of X from one or more instances
More informationDistributed 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 informationThe Universality of Consensus
Chapter 6 The Universality of Consensus 6.1 Introduction In the previous chapter, we considered a simple technique for proving statements of the form there is no wait-free implementation of X by Y. We
More informationSection 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 informationOn the Definition of Sequential Consistency
On the Definition of Sequential Consistency Ali Sezgin Ganesh Gopalakrishnan Abstract The definition of sequential consistency is compared with an intuitive notion of correctness. A relation between what
More information6.852 Lecture 17. Atomic objects Reading: Chapter 13 Next lecture: Atomic snapshot, read/write register
6.852 Lecture 17 Atomic objects Reading: Chapter 13 Next lecture: Atomic snapshot, read/write register Shared-memory model Single I/O automaton with locality restrictions doesn't exploit I/O automaton
More informationk-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 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 informationScheduler Activations. CS 5204 Operating Systems 1
Scheduler Activations CS 5204 Operating Systems 1 Concurrent Processing How can concurrent processing activity be structured on a single processor? How can application-level information and system-level
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 informationCache-Aware Lock-Free Queues for Multiple Producers/Consumers and Weak Memory Consistency
Cache-Aware Lock-Free Queues for Multiple Producers/Consumers and Weak Memory Consistency Anders Gidenstam Håkan Sundell Philippas Tsigas School of business and informatics University of Borås Distributed
More informationA Characterization of the Chomsky Hierarchy by String Turing Machines
A Characterization of the Chomsky Hierarchy by String Turing Machines Hans W. Lang University of Applied Sciences, Flensburg, Germany Abstract A string Turing machine is a variant of a Turing machine designed
More informationShared Objects. Shared Objects
Shared Objects Shared Objects Invoked operations have a non-zero duration Invocations can overlap Useful for: modeling distributed shared memory Objects can be combined together to implement higher level
More informationDesign of Concurrent and Distributed Data Structures
METIS Spring School, Agadir, Morocco, May 2015 Design of Concurrent and Distributed Data Structures Christoph Kirsch University of Salzburg Joint work with M. Dodds, A. Haas, T.A. Henzinger, A. Holzer,
More informationConcurrent library abstraction without information hiding
Universidad Politécnica de Madrid Escuela técnica superior de ingenieros informáticos Concurrent library abstraction without information hiding Artem Khyzha Advised by Manuel Carro and Alexey Gotsman Madrid
More informationOrder Is A Lie. Are you sure you know how your code runs?
Order Is A Lie Are you sure you know how your code runs? Order in code is not respected by Compilers Processors (out-of-order execution) SMP Cache Management Understanding execution order in a multithreaded
More informationSpeculative Linearizability
Speculative Linearizability Rachid Guerraoui Viktor Kuncak Giuliano Losa School of Computer and Communication Sciences Swiss Federal Institute of Technology Lausanne (EPFL) rachid.guerraoui@epfl.ch viktor.kuncak@epfl.ch
More informationarxiv: v1 [cs.dc] 13 May 2017
Which Broadcast Abstraction Captures k-set Agreement? Damien Imbs, Achour Mostéfaoui, Matthieu Perrin, Michel Raynal, LIF, Université Aix-Marseille, 13288 Marseille, France LINA, Université de Nantes,
More informationTime 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 informationGeneric Proofs of Consensus Numbers for Abstract Data Types
Generic Proofs of Consensus Numbers for Abstract Data Types Edward Talmage 1 and Jennifer Welch 2 1 Parasol Laboratory, Texas A&M University, College Station, USA etalmage@tamu.edu 2 Parasol Laboratory,
More informationThe Semantics of Progress in Lock-Based Transactional Memory
The Semantics of Progress in Lock-Based Transactional Memory Rachid Guerraoui Michał Kapałka EPFL, Switzerland {rachid.guerraoui, michal.kapalka}@epfl.ch Abstract Transactional memory (TM) is a promising
More informationConcurrent Computing. January 21, 2018
Concurrent Computing Rachid Guerraoui Petr Kuznetsov January 21, 2018 Contents 1. Introduction 7 1.1. A broad picture: the concurrency revolution........................ 7 1.2. The topic: shared objects..................................
More informationPA3 Design Specification
PA3 Teaching Data Structure 1. System Description The Data Structure Web application is written in JavaScript and HTML5. It has been divided into 9 pages: Singly linked page, Stack page, Postfix expression
More informationAn Approach to Behavioral Subtyping Based on Static Analysis
TACoS 04 Preliminary Version An Approach to Behavioral Subtyping Based on Static Analysis Francesco Logozzo 1 STIX - École Polytechnique F-91128 Palaiseau, France Abstract In mainstream object oriented
More informationBrewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services
PODC 2004 The PODC Steering Committee is pleased to announce that PODC 2004 will be held in St. John's, Newfoundland. This will be the thirteenth PODC to be held in Canada but the first to be held there
More informationLinearizability of Persistent Memory Objects
Linearizability of Persistent Memory Objects Michael L. Scott Joint work with Joseph Izraelevitz & Hammurabi Mendes www.cs.rochester.edu/research/synchronization/ Compiler-Driven Performance Workshop,
More informationAn Implementation of Causal Memories using the Writing Semantic
An Implementation of Causal Memories using the Writing Semantic R. Baldoni, C. Spaziani and S. Tucci-Piergiovanni D. Tulone Dipartimento di Informatica e Sistemistica Bell-Laboratories Universita di Roma
More informationConcurrent Objects. Companion slides for The Art of Multiprocessor Programming by Maurice Herlihy & Nir Shavit
Concurrent Objects Companion slides for The by Maurice Herlihy & Nir Shavit Concurrent Computation memory object object 2 Objectivism What is a concurrent object? How do we describe one? How do we implement
More informationChapter 14: Pushdown Automata
Chapter 14: Pushdown Automata Peter Cappello Department of Computer Science University of California, Santa Barbara Santa Barbara, CA 93106 cappello@cs.ucsb.edu The corresponding textbook chapter should
More informationReview of last lecture. Peer Quiz. DPHPC Overview. Goals of this lecture. Lock-based queue
Review of last lecture Design of Parallel and High-Performance Computing Fall 2016 Lecture: Linearizability Motivational video: https://www.youtube.com/watch?v=qx2driqxnbs Instructor: Torsten Hoefler &
More informationNon-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 information1 The comparison of QC, SC and LIN
Com S 611 Spring Semester 2009 Algorithms for Multiprocessor Synchronization Lecture 5: Tuesday, 3rd February 2009 Instructor: Soma Chaudhuri Scribe: Jianrong Dong 1 The comparison of QC, SC and LIN Pi
More informationReview of last lecture. Goals of this lecture. DPHPC Overview. Lock-based queue. Lock-based queue
Review of last lecture Design of Parallel and High-Performance Computing Fall 2013 Lecture: Linearizability Instructor: Torsten Hoefler & Markus Püschel TA: Timo Schneider Cache-coherence is not enough!
More informationA Skiplist-based Concurrent Priority Queue with Minimal Memory Contention
A Skiplist-based Concurrent Priority Queue with Minimal Memory Contention Jonatan Lindén and Bengt Jonsson Uppsala University, Sweden December 18, 2013 Jonatan Lindén 1 Contributions Motivation: Improve
More informationVerifying a Compiler for Java Threads
Verifying a Compiler for Java Threads Andreas Lochbihler IPD, PROGRAMMING PARADIGMS GROUP, COMPUTER SCIENCE DEPARTMENT KIT - University of the State of aden-wuerttemberg and National Research Center of
More informationImportant Lessons. A Distributed Algorithm (2) Today's Lecture - Replication
Important Lessons Lamport & vector clocks both give a logical timestamps Total ordering vs. causal ordering Other issues in coordinating node activities Exclusive access to resources/data Choosing a single
More informationGeneric Proofs of Consensus Numbers for Abstract Data Types
Generic Proofs of Consensus Numbers for Abstract Data Types Edward Talmage and Jennifer Welch Parasol Laboratory, Texas A&M University College Station, Texas, USA etalmage@tamu.edu, welch@cse.tamu.edu
More informationLinearizability Testing Manual
Linearizability Testing Manual Gavin Lowe April 8, 2016 This manual describes how to use the linearizability testing framework, described in [Low16]. The framework is available from http://www.cs.ox. ac.uk/people/gavin.lowe/linearizabiltytesting/.
More informationA Type System for Object Initialization In the Java TM Bytecode Language
Electronic Notes in Theoretical Computer Science 10 (1998) URL: http://www.elsevier.nl/locate/entcs/volume10.html 7 pages A Type System for Object Initialization In the Java TM Bytecode Language Stephen
More informationDD2451 Parallel and Distributed Computing --- FDD3008 Distributed Algorithms
DD2451 Parallel and Distributed Computing --- FDD3008 Distributed Algorithms Lecture 4 Consensus, I Mads Dam Autumn/Winter 2011 Slides: Much material due to M. Herlihy and R Wa8enhofer Last Lecture Shared
More informationFinal Exam. 12 December 2018, 120 minutes, 26 questions, 100 points
Name: CS520 Final Exam 12 December 2018, 120 minutes, 26 questions, 100 points The exam is closed book and notes. Please keep all electronic devices turned off and out of reach. Note that a question may
More informationRelationships 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 informationTransactions are Back but How Different They Are?
Transactions are Back but How Different They Are? Relating STM and Databases Consistency Conditions (Preliminary Version) Hagit Attiya Technion hagit@cs.technion.ac.il Sandeep Hans Technion sandeep@cs.technion.ac.il
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 informationConsistency. CS 475, Spring 2018 Concurrent & Distributed Systems
Consistency CS 475, Spring 2018 Concurrent & Distributed Systems Review: 2PC, Timeouts when Coordinator crashes What if the bank doesn t hear back from coordinator? If bank voted no, it s OK to abort If
More informationProcesses and Non-Preemptive Scheduling. Otto J. Anshus
Processes and Non-Preemptive Scheduling Otto J. Anshus Threads Processes Processes Kernel An aside on concurrency Timing and sequence of events are key concurrency issues We will study classical OS concurrency
More informationAdd a multiple of a row to another row, replacing the row which was not multiplied.
Determinants Properties involving elementary row operations There are a few sections on properties. Rirst, we ll simply state collections of properties, provide some examples, and talk about why they are
More informationpp Variants of Turing Machines (Sec. 3.2)
pp. 176-176-182. Variants of Turing Machines (Sec. 3.2) Remember: a language is Turing recognizable if some TM accepts it. Adding features may simplify programmability but DO NOT affect what a TM can compute.
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 informationCheckpointing and Rollback Recovery in Distributed Systems: Existing Solutions, Open Issues and Proposed Solutions
Checkpointing and Rollback Recovery in Distributed Systems: Existing Solutions, Open Issues and Proposed Solutions D. Manivannan Department of Computer Science University of Kentucky Lexington, KY 40506
More informationSample Question Paper
Scheme - I Sample Question Paper Marks : 70 Time: 3 Hrs. Q.1) Attempt any FIVE of the following. 10 Marks a. Write any four applications of data structure. b. Sketch the diagram of circular queue. c. State
More informationWhat Can be Computed in a Distributed System?
What Can be Computed in a Distributed System? Michel Raynal Institut Universitaire de France &IRISA,Université de Rennes, France & Department of Computing, Polytechnic University, Hong Kong raynal@irisa.fr
More informationQuasi-Linearizability Relaxed Consistency For Improved Concurrency
TEL-AVIV UNIVERSITY RAYMOND AND BEVERLY SACKLER FACULTY OF EXACT SCIENCES SCHOOL OF COMPUTER SCIENCE Quasi-Linearizability Relaxed Consistency For Improved Concurrency Dissertation submitted in partial
More informationLock-Free Techniques for Concurrent Access to Shared Objects
This is a revised version of the previously published paper. It includes a contribution from Shahar Frank who raised a problem with the fifo-pop algorithm. Revised version date: sept. 30 2003. Lock-Free
More informationStory so far. Parallel Data Structures. Parallel data structure. Working smoothly with Galois iterators
Story so far Parallel Data Structures Wirth s motto Algorithm + Data structure = Program So far, we have studied parallelism in regular and irregular algorithms scheduling techniques for exploiting parallelism
More informationOn the Expressiveness of Polyadicity in Higher-Order Process Calculi
On the Expressiveness of Polyadicity in Higher-Order Process Calculi Ivan Lanese, Jorge A. Pérez, Davide Sangiorgi (Univ. di Bologna) Alan Schmitt (INRIA Grenoble - Rhône Alpes) ICTCS 09 Cremona, September
More informationAllocating memory in a lock-free manner
Allocating memory in a lock-free manner Anders Gidenstam, Marina Papatriantafilou and Philippas Tsigas Distributed Computing and Systems group, Department of Computer Science and Engineering, Chalmers
More informationFrom 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 informationComplexity and Advanced Algorithms Monsoon Parallel Algorithms Lecture 2
Complexity and Advanced Algorithms Monsoon 2011 Parallel Algorithms Lecture 2 Trivia ISRO has a new supercomputer rated at 220 Tflops Can be extended to Pflops. Consumes only 150 KW of power. LINPACK is
More informationAsynchronous Resilient Linearizability
Asynchronous Resilient Linearizability Sagar Chordia 1, Sriram Rajamani 2, Kaushik Rajan 2, G. Ramalingam 2, and Kapil Vaswani 2 1 IIT Bombay 2 Microsoft Research India chordiasagar14@gmail.com,(sriram,krajan,grama,kapilv)@microsoft.com
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 informationProgramming Paradigms for Concurrency Lecture 3 Concurrent Objects
Programming Paradigms for Concurrency Lecture 3 Concurrent Objects Based on companion slides for The Art of Multiprocessor Programming by Maurice Herlihy & Nir Shavit Modified by Thomas Wies New York University
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 informationA Non-Blocking Concurrent Queue Algorithm
A Non-Blocking Concurrent Queue Algorithm Bruno Didot bruno.didot@epfl.ch June 2012 Abstract This report presents a new non-blocking concurrent FIFO queue backed by an unrolled linked list. Enqueue and
More information40 Behaviour Compatibility
40 Behaviour Compatibility [2] R. De Nicola, Extentional Equivalences for Transition Systems, Acta Informatica, vol. 24, pp. 21-237, 1987. [3] J. Gray, Notes on Data Base Operating Systems, in Operating
More informationCONCURRENT LIBRARIES. Correctness Criteria, Verification
CONCURRENT LIBRARIES Correctness Criteria, Verification Verification Ingredients Specifying a Library: φ Implementing a Library: L Verifying a Library implementation: L φ The History of an Object Object
More informationUniversality of Consensus. Companion slides for The Art of Multiprocessor Programming by Maurice Herlihy & Nir Shavit
Universality of Consensus Companion slides for The by Maurice Herlihy & Nir Shavit Turing Computability 1 0 1 1 0 1 0 A mathematical model of computation Computable = Computable on a T-Machine 2 Shared-Memory
More informationVerification of a Concurrent Deque Implementation
Verification of a Concurrent Deque Implementation Robert D. Blumofe C. Greg Plaxton Sandip Ray Department of Computer Science, University of Texas at Austin rdb, plaxton, sandip @cs.utexas.edu June 1999
More informationReflection in the Chomsky Hierarchy
Reflection in the Chomsky Hierarchy Henk Barendregt Venanzio Capretta Dexter Kozen 1 Introduction We investigate which classes of formal languages in the Chomsky hierarchy are reflexive, that is, contain
More informationIndistinguishability: 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 informationVALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur 603203. DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Year & Semester : III and VI Section : CSE- 1 & 2 Subject Code : CS6601 Subject Name : DISTRIBUTED
More informationBreakpoints and Halting in Distributed Programs
1 Breakpoints and Halting in Distributed Programs Barton P. Miller Jong-Deok Choi Computer Sciences Department University of Wisconsin-Madison 1210 W. Dayton Street Madison, Wisconsin 53706 Abstract Interactive
More informationVerification of Work-stealing Deque Implementation
IT 12 008 Examensarbete 30 hp Mars 2012 Verification of Work-stealing Deque Implementation Majid Khorsandi Aghai Institutionen för informationsteknologi Department of Information Technology Abstract Verification
More informationCS 241 Honors Concurrent Data Structures
CS 241 Honors Concurrent Data Structures Bhuvan Venkatesh University of Illinois Urbana Champaign March 27, 2018 CS 241 Course Staff (UIUC) Lock Free Data Structures March 27, 2018 1 / 43 What to go over
More informationSequen&al Consistency and Linearizability
Sequen&al Consistency and Linearizability (Or, Reasoning About Concurrent Objects) Acknowledgement: Slides par&ally adopted from the companion slides for the book "The Art of Mul&processor Programming"
More informationA Methodological Construction of an Efficient Sequential Consistency Protocol Λ
A Methodological Construction of an Efficient Sequential Consistency Protocol Λ Vicent CHOLVI ffi Antonio FERNÁNDEZ y Ernesto JIMÉNEZ z Michel RAYNAL? ffi Universidad Jaume I, Castellón, Spain y Laboratorio
More informationSystemC Semantics in Fixpoint
SystemC Semantics in Fixpoint Ali Habibi and Sofiène Tahar Department of Electrical and Computer Engineering, Concordia University, Montreal, Canada Email: {habibi, tahar}@ece.concordia.ca Technical Report
More informationBQ: A Lock-Free Queue with Batching
BQ: A Lock-Free Queue with Batching Gal Milman Technion, Israel galy@cs.technion.ac.il Alex Kogan Oracle Labs, USA alex.kogan@oracle.com Yossi Lev Oracle Labs, USA levyossi@icloud.com ABSTRACT Victor Luchangco
More informationChapter 1. Preliminaries
Chapter 1 Preliminaries 1.1 Topological spaces 1.1.1 The notion of topological space The topology on a set X is usually defined by specifying its open subsets of X. However, in dealing with topological
More informationCS1150 Principles of Computer Science Methods
CS1150 Principles of Computer Science Methods Yanyan Zhuang Department of Computer Science http://www.cs.uccs.edu/~yzhuang CS1150 UC. Colorado Springs Opening Problem Find the sum of integers from 1 to
More informationAnalysis of Commutativity with state-chart graph representation of concurrent programs.
University of Central Florida Electronic Theses and Dissertations Masters Thesis (Open Access) Analysis of Commutativity with state-chart graph representation of concurrent programs. 06 Kishore Debnath
More information6.852: Distributed Algorithms Fall, Class 12
6.852: Distributed Algorithms Fall, 2009 Class 12 Today s plan Weak logical time and vector timestamps Consistent global snapshots and stable property detection. Applications: Distributed termination.
More informationProving Linearizability Using Partial Orders
Proving Linearizability Using Partial Orders Artem Khyzha 1, Mike Dodds 2, Alexey Gotsman 1, and Matthew Parkinson 3 1 IMDEA Software Institute, Madrid, Spain 2 University of York, UK 3 Microsoft Research
More informationLinearizability Checking: Reductions to State Reachability
Linearizability Checking: Reductions to State Reachability Ahmed Bouajjani Univ Paris Diderot - Paris 7 Joint work with Michael Emmi Constantin Enea Jad Hamza Bell Labs, Nokia Univ Paris Diderot EPFL IMS-NUS,
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 informationMutex Implementation
COS 318: Operating Systems Mutex Implementation Jaswinder Pal Singh Computer Science Department Princeton University (http://www.cs.princeton.edu/courses/cos318/) Revisit Mutual Exclusion (Mutex) u Critical
More information