Concurrent specifications beyond linearizability

Size: px
Start display at page:

Download "Concurrent specifications beyond linearizability"

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

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 information

Concurrent Objects and Linearizability

Concurrent 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 information

Proving linearizability using forward simulations

Proving 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 information

Fork Sequential Consistency is Blocking

Fork 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 information

Fork Sequential Consistency is Blocking

Fork 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 information

Linearizability with ownership transfer

Linearizability 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 information

Proving Linearizability Using Forward Simulations

Proving 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 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

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

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

Solo-Valency and the Cost of Coordination

Solo-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 information

Linearizability of Persistent Memory Objects

Linearizability 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 information

Overview of Lecture 4. Memory Models, Atomicity & Performance. Ben-Ari Concurrency Model. Dekker s Algorithm 4

Overview 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 information

Parallel Programming in Distributed Systems Or Distributed Systems in Parallel Programming

Parallel 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 information

The Relative Power of Synchronization Methods

The 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 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

The Universality of Consensus

The 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 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

On the Definition of Sequential Consistency

On 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 information

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

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

Scheduler Activations. CS 5204 Operating Systems 1

Scheduler 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 information

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

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

More information

Cache-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 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 information

A Characterization of the Chomsky Hierarchy by String Turing Machines

A 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 information

Shared Objects. Shared Objects

Shared 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 information

Design of Concurrent and Distributed Data Structures

Design 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 information

Concurrent library abstraction without information hiding

Concurrent 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 information

Order 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 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 information

Speculative Linearizability

Speculative 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 information

arxiv: v1 [cs.dc] 13 May 2017

arxiv: 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 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

Generic Proofs of Consensus Numbers for Abstract Data Types

Generic 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 information

The Semantics of Progress in Lock-Based Transactional Memory

The 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 information

Concurrent Computing. January 21, 2018

Concurrent 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 information

PA3 Design Specification

PA3 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 information

An Approach to Behavioral Subtyping Based on Static Analysis

An 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 information

Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services

Brewer'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 information

Linearizability of Persistent Memory Objects

Linearizability 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 information

An Implementation of Causal Memories using the Writing Semantic

An 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 information

Concurrent Objects. Companion slides for The Art of Multiprocessor Programming by Maurice Herlihy & Nir Shavit

Concurrent 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 information

Chapter 14: Pushdown Automata

Chapter 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 information

Review of last lecture. Peer Quiz. DPHPC Overview. Goals of this lecture. Lock-based queue

Review 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 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

1 The comparison of QC, SC and LIN

1 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 information

Review of last lecture. Goals of this lecture. DPHPC Overview. Lock-based queue. Lock-based queue

Review 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 information

A Skiplist-based Concurrent Priority Queue with Minimal Memory Contention

A 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 information

Verifying a Compiler for Java Threads

Verifying 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 information

Important Lessons. A Distributed Algorithm (2) Today's Lecture - Replication

Important 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 information

Generic Proofs of Consensus Numbers for Abstract Data Types

Generic 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 information

Linearizability Testing Manual

Linearizability 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 information

A Type System for Object Initialization In the Java TM Bytecode Language

A 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 information

DD2451 Parallel and Distributed Computing --- FDD3008 Distributed Algorithms

DD2451 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 information

Final Exam. 12 December 2018, 120 minutes, 26 questions, 100 points

Final 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 information

Relationships Between Broadcast and Shared Memory in Reliable Anonymous Distributed Systems

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

More information

Transactions are Back but How Different They Are?

Transactions 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 information

Algorithms that Adapt to Contention

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

More information

Consistency. CS 475, Spring 2018 Concurrent & Distributed Systems

Consistency. 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 information

Processes and Non-Preemptive Scheduling. Otto J. Anshus

Processes 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 information

Add a multiple of a row to another row, replacing the row which was not multiplied.

Add 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 information

pp Variants of Turing Machines (Sec. 3.2)

pp 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 information

Combinatorial Algebraic Topology and applications to Distributed Computing

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

More information

Checkpointing 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 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 information

Sample Question Paper

Sample 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 information

What Can be Computed in a Distributed System?

What 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 information

Quasi-Linearizability Relaxed Consistency For Improved Concurrency

Quasi-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 information

Lock-Free Techniques for Concurrent Access to Shared Objects

Lock-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 information

Story so far. Parallel Data Structures. Parallel data structure. Working smoothly with Galois iterators

Story 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 information

On the Expressiveness of Polyadicity in Higher-Order Process Calculi

On 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 information

Allocating memory in a lock-free manner

Allocating 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 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

Complexity and Advanced Algorithms Monsoon Parallel Algorithms Lecture 2

Complexity 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 information

Asynchronous Resilient Linearizability

Asynchronous 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 information

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

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

More information

Programming Paradigms for Concurrency Lecture 3 Concurrent Objects

Programming 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 information

Concurrent Programming: Algorithms, Principles, and Foundations

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

More information

A Non-Blocking Concurrent Queue Algorithm

A 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 information

40 Behaviour Compatibility

40 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 information

CONCURRENT LIBRARIES. Correctness Criteria, Verification

CONCURRENT 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 information

Universality of Consensus. Companion slides for The Art of Multiprocessor Programming by Maurice Herlihy & Nir Shavit

Universality 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 information

Verification of a Concurrent Deque Implementation

Verification 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 information

Reflection in the Chomsky Hierarchy

Reflection 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 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

VALLIAMMAI 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 information

Breakpoints and Halting in Distributed Programs

Breakpoints 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 information

Verification of Work-stealing Deque Implementation

Verification 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 information

CS 241 Honors Concurrent Data Structures

CS 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 information

Sequen&al Consistency and Linearizability

Sequen&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 information

A Methodological Construction of an Efficient Sequential Consistency Protocol Λ

A 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 information

SystemC Semantics in Fixpoint

SystemC 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 information

BQ: A Lock-Free Queue with Batching

BQ: 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 information

Chapter 1. Preliminaries

Chapter 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 information

CS1150 Principles of Computer Science Methods

CS1150 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 information

Analysis of Commutativity with state-chart graph representation of concurrent programs.

Analysis 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 information

6.852: Distributed Algorithms Fall, Class 12

6.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 information

Proving Linearizability Using Partial Orders

Proving 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 information

Linearizability Checking: Reductions to State Reachability

Linearizability 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 information

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

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

More information

Mutex Implementation

Mutex 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