Local Linearizability

Size: px
Start display at page:

Download "Local Linearizability"

Transcription

1 Local Linearizability joint work with: Andreas Haas Andreas Holzer Michael Lippautz Ali Sezgin Tom Henzinger Christoph Kirsch Hannes Payer Helmut Veith

2 Concurrent Data Structures Correctness and Performance

3 Semantics of concurrent data structures t1: enq(2) deq(1) t2: enq(1) deq(2) e.g. pools, queues, stacks Sequential specification = set of legal sequences Consistency condition = e.g. linearizability / sequential consistency e.g. queue legal sequence enq(1)enq(2)deq(1)deq(2) e.g. the concurrent history above is a linearizable queue concurrent history

4 Consistency conditions there exists a legal sequence that preserves precedence Linearizability [Herlihy,Wing 90] 2 3 t1: enq(2) deq(1) t2: 1 enq(1) deq(2) 4 Sequential Consistency [Lamport 79] there exists a legal sequence that preserves per-thread precedence (program order) t1: 1enq(1) deq(2) t2: deq(1) enq(2) 2 3 4

5 Performance and scalability :-))) throughput :-) :-( :-\ # of threads / cores

6 Relaxations allow trading correctness for performance provide the potential for better-performing implementations

7 Relaxing the Semantics not sequentially correct Quantitative relaxations Henzinger, Kirsch, Payer, Sezgin,S. POPL13 Sequential specification = set of legal sequences Consistency condition = e.g. linearizability / sequential consistency for queues only (feel free to ask for more) too weak Local linearizability in this talk

8 Local Linearizability main idea Already present in some shared-memory consistency conditions (not in our form of choice) Partition a history into a set of local histories Require linearizability per local history no global witness Local sequential consistency is also possible

9 Local Linearizability (queue) example (sequential) history not linearizable t1: enq(1) deq(2) t2: enq(2) deq(1) t2-induced history, linearizable t1-induced history, linearizable locally linearizable

10 Local Linearizability (queue) definition Queue signature = {enq(x) x V} {deq(x) x V} {deq(empty)} For a history h with a thread T, we put IT = {enq(x) T h x V} in-methods of thread T are enqueues performed by thread T OT = {deq(x) T h enq(x) T IT} {deq(empty)} out-methods of thread T are dequeues (performed by any thread) corresponding to enqueues that are in-methods h is locally linearizable iff every thread-induced history ht= h (IT OT) is linearizable.

11 Local Linearizability for Container-Type DS Signature = Ins Rem SOb DOb For a history h with a thread T, we put IT = {m T h m Ins} in-methods of thread T are inserts performed by thread T OT = {m(a) h Rem i(a) T IT} {m(e) e Emp} {m(a) h DOb i(a) T IT} out-methods of thread T are removes and data-observations (performed by any thread) corresponding to in-methods h is locally linearizable iff every thread-induced history ht= h (IT OT) is linearizable.

12 Where do we stand? In general Linearizability Local Linearizability Sequential Consistency

13 Where do we stand? For queues (and most container-type data structures) Linearizability Local Linearizability Sequential Consistency

14 Properties Local linearizability is compositional like linearizability unlike sequential consistency h (over multiple objects) is locally linearizable iff each per-object subhistory of h is locally linearizable Local linearizability is modular / decompositional uses decomposition into smaller histories, by definition may allow for modular verification

15 Verification (queue) Queue sequential specification (axiomatic) s is a legal queue sequence iff 1. s is a legal pool sequence, and 2. enq(x) <s enq(y) deq(y) s deq(x) s deq(x) <s deq(y) Queue linearizability (axiomatic) Henzinger, Sezgin, Vafeiadis CONCUR13 h is queue linearizable iff 1. h is pool linearizable, and 2. enq(x) <h enq(y) deq(y) h deq(x) h deq(y) h deq(x) precedence order

16 Verification (queue) Queue sequential specification (axiomatic) s is a legal queue sequence iff 1. s is a legal pool sequence, and 2. enq(x) <s enq(y) deq(y) s deq(x) s deq(x) <s deq(y) Queue local linearizability (axiomatic) h is queue locally linearizable iff 1. h is pool locally linearizable, and 2. enq(x) <h i enq(y) deq(y) h deq(x) h deq(y) h deq(x) thread-local precedence order

17 Generic Implementations Your favorite linearizable data structure implementation Φ turns into a locally linearizable implementation by: t1 t2 tn segment of possibly dynamic size (n) LLD Φ (locally linearizable) Φ Φ Φ LL+D Φ local inserts / global (randomly distributed) removes (also pool linearizable)

18 million operations per sec (more is better) Performance number of threads LL+D MS queue performs significantly better than MS queue MS LCRQ k-fifo LL+D MS LLD LCRQ LLD k-fifo 1-RA DQ (a) Queues, LL queues, and queue-like pools

19 million operations per sec (more is better) Performance number of threads LLD Φ performs significantly better than Φ MS LCRQ k-fifo LL+D MS LLD LCRQ LLD k-fifo 1-RA DQ (a) Queues, LL queues, and queue-like pools

20 million operations per sec (more is better) Performance number of threads LL+D MS queue performs better than the best known pools MS LCRQ k-fifo LL+D MS LLD LCRQ LLD k-fifo 1-RA DQ (a) Queues, LL queues, and queue-like pools

21 Thank You! Local Linearizability joint work with: Andreas Haas Andreas Holzer Michael Lippautz Ali Sezgin Tom Henzinger Christoph Kirsch Hannes Payer Helmut Veith

22 Thank You! Local Linearizability joint work with: Andreas Haas Andreas Holzer Michael Lippautz Ali Sezgin Tom Henzinger Christoph Kirsch Hannes Payer Helmut Veith

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

arxiv: v4 [cs.pl] 24 Jun 2016

arxiv: v4 [cs.pl] 24 Jun 2016 Local Linearizability Andreas Haas 1, Thomas A. Henzinger 2, Andreas Holzer 3, Christoph M. Kirsch 4, Michael Lippautz 1, Hannes Payer 1, Ali Sezgin 5, Ana Sokolova 4, and Helmut Veith 6,7 1 Google Inc.

More information

Local Linearizability for Concurrent Container-Type Data Structures

Local Linearizability for Concurrent Container-Type Data Structures Local Linearizability for Concurrent Container-Type Data Structures Andreas Haas 1, Thomas A. Henzinger 2, Andreas Holzer 3, Christoph M. Kirsch 4, Michael Lippautz 1, Hannes Payer 1, Ali Sezgin 5, Ana

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

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

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

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

Round-Up: Runtime Checking Quasi Linearizability of Concurrent Data Structures

Round-Up: Runtime Checking Quasi Linearizability of Concurrent Data Structures Round-Up: Runtime Checking Quasi Linearizability of Concurrent Data Structures Lu Zhang, Arijit Chattopadhyay, and Chao Wang Department of ECE, Virginia Tech Blacksburg, VA 24061, USA {zhanglu, arijitvt,

More information

Distributed Queues in Shared Memory

Distributed Queues in Shared Memory Distributed Queues in Shared Memory Multicore Performance and Scalability through Quantitative Relaxation Andreas Haas University of Salzburg ahaas@cs.unisalzburg.at Michael Lippautz University of Salzburg

More information

Round-Up: Runtime Verification of Quasi Linearizability for Concurrent Data Structures

Round-Up: Runtime Verification of Quasi Linearizability for Concurrent Data Structures 1 Round-Up: Runtime Verification of Quasi Linearizability for Concurrent Data Structures Lu Zhang, Arijit Chattopadhyay, and Chao Wang, Member, IEEE Abstract We propose a new method for runtime checking

More information

Performance, Scalability, and Semantics of Concurrent FIFO Queues

Performance, Scalability, and Semantics of Concurrent FIFO Queues Performance, Scalability, and Semantics of Concurrent FIFO Queues Christoph M. Kirsch Hannes Payer Harald Röck Ana Sokolova Department of Computer Sciences University of Salzburg, Austria firstname.lastname@cs.uni-salzburg.at

More information

Quantitative Relaxation of Concurrent Data Structures

Quantitative Relaxation of Concurrent Data Structures Quantitative Relaxation of Concurrent Data Structures Thomas A. Henzinger Christoph M. Kirsch` Hannes Payer` Ali Sezgin Ana Sokolova` IST Austria `University of Salzburg {tah,asezgin}@ist.ac.at firstname.lastname@cs.uni-salzburg.at

More information

Performance, Scalability, and Semantics of Concurrent FIFO Queues

Performance, Scalability, and Semantics of Concurrent FIFO Queues Performance, Scalability, and Semantics of Concurrent FIFO Queues Christoph M. Kirsch Hannes Payer Harald Röck Ana Sokolova Technical Report 2011-03 September 2011 Department of Computer Sciences Jakob-Haringer-Straße

More information

DREU Research. Alyssa Byrnes, Graduate Mentor: Edward Talmage, Faculty Mentor: Jennifer Welch August 26, 2015

DREU Research. Alyssa Byrnes, Graduate Mentor: Edward Talmage, Faculty Mentor: Jennifer Welch August 26, 2015 DREU Research Alyssa Byrnes, Graduate Mentor: Edward Talmage, Faculty Mentor: Jennifer Welch August 26, 2015 Abstract Cloud computing has increased interest in implementing shared data objects in messagepassing

More information

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

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

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

Testing for Linearizability

Testing for Linearizability CONCURRENCY AND COMPUTATION: PRACTICE AND EXPERIENCE Concurrency Computat.: Pract. Exper. 0000; 00:1 22 Published online in Wiley InterScience (www.interscience.wiley.com). DOI: 10.1002/cpe Testing for

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

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

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

RiSE: Relaxed Systems Engineering? Christoph Kirsch University of Salzburg

RiSE: Relaxed Systems Engineering? Christoph Kirsch University of Salzburg RiSE: Relaxed Systems Engineering? Christoph Kirsch University of Salzburg Application: >10k #threads, producer/consumer, blocking Hardware: CPUs, cores, MMUs,, caches Application: >10k #threads, producer/consumer,

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

The Next Frontier of Cloud Computing is in the Clouds, Literally

The Next Frontier of Cloud Computing is in the Clouds, Literally The Next Frontier of Cloud Computing is in the Clouds, Literally Silviu Craciunas, Andreas Haas Christoph Kirsch, Hannes Payer Harald Röck, Andreas Rottmann Ana Sokolova, Rainer Trummer Joshua Love Raja

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

Lecture 4: Languages, Fast Locks, and Lock-free

Lecture 4: Languages, Fast Locks, and Lock-free T. HOEFLER, M. PUESCHEL Lecture 4: Languages, Fast Locks, and Lock-free Teaching assistant: Salvatore Di Girolamo Motivational video: https://www.youtube.com/watch?v=1o4yvibagu0 So, a computing scientist

More information

Review of last lecture. Peer Quiz. DPHPC Overview. Goals of this lecture. Is coherence everything?

Review of last lecture. Peer Quiz. DPHPC Overview. Goals of this lecture. Is coherence everything? Review of last lecture Design of Parallel and High-Performance Computing Fall Lecture: Memory Models Motivational video: https://www.youtube.com/watch?v=twhtg4ous Instructor: Torsten Hoefler & Markus Püschel

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

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

Proving linearizability & lock-freedom

Proving linearizability & lock-freedom Proving linearizability & lock-freedom Viktor Vafeiadis MPI-SWS Michael & Scott non-blocking queue head tail X 1 3 2 null CAS compare & swap CAS (address, expectedvalue, newvalue) { atomic { if ( *address

More information

Replacing Competition with Cooperation to Achieve Scalable Lock-Free FIFO Queues

Replacing Competition with Cooperation to Achieve Scalable Lock-Free FIFO Queues Replacing Competition with Cooperation to Achieve Scalable Lock-Free FIFO Queues Thomas A. Henzinger and Hannes Payer and Ali Sezgin Technical Report No. IST-2013-124-v1+1 Deposited at 13 Jun 2013 11:52

More information

Runtime Verification and Debugging of Concurrent Software

Runtime Verification and Debugging of Concurrent Software Runtime Verification and Debugging of Concurrent Software Lu Zhang Dissertation submitted to the Faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements

More information

Compositionality in system design: interfaces everywhere! UC Berkeley

Compositionality in system design: interfaces everywhere! UC Berkeley Compositionality in system design: interfaces everywhere! Stavros Tripakis UC Berkeley DREAMS Seminar, Mar 2013 Computers as parts of cyber physical systems cyber-physical ~98% of the world s processors

More information

Formal Reasoning in Distributed Algorithms

Formal Reasoning in Distributed Algorithms Formal Reasoning in Distributed Algorithms TU Wien, Freihaus, Green area, 5 th floor, Seminarraum 104 Day 1 (July 23) Joseph Halpern : Invited talk 9:00 10:15 Beyond Nash Equilibrium: Solution Concepts

More information

An introduction to weak memory consistency and the out-of-thin-air problem

An introduction to weak memory consistency and the out-of-thin-air problem An introduction to weak memory consistency and the out-of-thin-air problem Viktor Vafeiadis Max Planck Institute for Software Systems (MPI-SWS) CONCUR, 7 September 2017 Sequential consistency 2 Sequential

More information

Unit 6: Indeterminate Computation

Unit 6: Indeterminate Computation Unit 6: Indeterminate Computation Martha A. Kim October 6, 2013 Introduction Until now, we have considered parallelizations of sequential programs. The parallelizations were deemed safe if the parallel

More information

A Comparison of Concurrent Correctness Criteria for Shared Memory Based Data Structure

A Comparison of Concurrent Correctness Criteria for Shared Memory Based Data Structure University of Central Florida Electronic Theses and Dissertations Masters Thesis (Open Access) A Comparison of Concurrent Correctness Criteria for Shared Memory Based Data Structure 2016 Dipanjan Bhattacharya

More information

Reasoning About Atomic Objects. Abstract

Reasoning About Atomic Objects. Abstract Reasoning About Atomic Objects Maurice P. Herllhy and Jeannette M. Wing Computer Science Department Carnegie Mellon University Pittsburgh, Pennsylvania 15213-3890 U.S.A. 1 Abstract Atomic transactions

More information

How Free is Your Linearizable Concurrent Data Structure?

How Free is Your Linearizable Concurrent Data Structure? How Free is Your Linearizable Concurrent Data Structure? Thomas A. Henzinger 1 and Ali Sezgin 1 IST Austria {tah,asezgin}@ist.ac.at Abstract. Linearizability requires that the outcome of calls by competing

More information

University of Leeds SCHOOL OF COMPUTER STUDIES RESEARCH REPORT SERIES Report The Consistency Properties of a Scalable, Concurrent Queue

University of Leeds SCHOOL OF COMPUTER STUDIES RESEARCH REPORT SERIES Report The Consistency Properties of a Scalable, Concurrent Queue University of Leeds SCHOOL OF COMPUTER STUDIES RESEARCH REPORT SERIES Report 96.35 The Consistency Properties of a Scalable, Concurrent Queue by D.M. Goodeve, J.R. Davy, P.M. Dew, J.M. Nash December 1996

More information

Transactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev

Transactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev Transactum Business Process Manager with High-Performance Elastic Scaling November 2011 Ivan Klianev Transactum BPM serves three primary objectives: To make it possible for developers unfamiliar with distributed

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

Recall use of logical clocks

Recall use of logical clocks Causal Consistency Consistency models Linearizability Causal Eventual COS 418: Distributed Systems Lecture 16 Sequential Michael Freedman 2 Recall use of logical clocks Lamport clocks: C(a) < C(z) Conclusion:

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

Module Interfaces and Concurrency

Module Interfaces and Concurrency Module Interfaces and Concurrency Arvind Computer Science and Artificial Intelligence Laboratory M.I.T. L12-1 Design Alternatives: Latency and Throughput Combinational (C) Pipeline (P) Folded: Reuse a

More information

Shared memory model" Shared memory guarantees" Read-write register" Wait-freedom: unconditional progress " Liveness" Shared memory basics"

Shared memory model Shared memory guarantees Read-write register Wait-freedom: unconditional progress  Liveness Shared memory basics Shared memory basics INF346, 2014 Shared memory model Processes communicate by applying operations on and receiving responses from shared objects! A shared object is a state machine ü States ü Operations/Responses

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

Causal Consistency. CS 240: Computing Systems and Concurrency Lecture 16. Marco Canini

Causal Consistency. CS 240: Computing Systems and Concurrency Lecture 16. Marco Canini Causal Consistency CS 240: Computing Systems and Concurrency Lecture 16 Marco Canini Credits: Michael Freedman and Kyle Jamieson developed much of the original material. Consistency models Linearizability

More information

CS 206 Introduction to Computer Science II

CS 206 Introduction to Computer Science II CS 206 Introduction to Computer Science II 07 / 26 / 2016 Instructor: Michael Eckmann Today s Topics Comments/Questions? Stacks and Queues Applications of both Priority Queues Michael Eckmann - Skidmore

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

A linear-list Data Structure where - addition of elements to and - removal of elements from are restricted to the first element of the list.

A linear-list Data Structure where - addition of elements to and - removal of elements from are restricted to the first element of the list. A linear-list Data Structure where - addition of elements to and - removal of elements from are restricted to the first element of the list. the first element of the list a new element to (the Top of)

More information

Consistency and Replication. Why replicate?

Consistency and Replication. Why replicate? Consistency and Replication Today: Introduction Consistency models Data-centric consistency models Client-centric consistency models Thoughts for the mid-term Lecture 14, page 1 Why replicate? Data replication:

More information

Chapter 9 Abstract Data Types and Algorithms

Chapter 9 Abstract Data Types and Algorithms Chapter Goals Chapter 9 Abstract Data Types and Algorithms Define an abstract data type and discuss its role in algorithm development Distinguish between a data type and a data structure Distinguish between

More information

Static Analysis of Atomicity for Algorithms Using Non-Blocking Synchronization

Static Analysis of Atomicity for Algorithms Using Non-Blocking Synchronization Static Analysis of Atomicity for Algorithms Using Non-Blocking Synchronization Liqiang Wang and Scott D. Stoller Abstract In concurrent programming, non-blocking synchronization is very efficient but difficult

More information

Proving liveness. Alexey Gotsman IMDEA Software Institute

Proving liveness. Alexey Gotsman IMDEA Software Institute Proving liveness Alexey Gotsman IMDEA Software Institute Safety properties Ensure bad things don t happen: - the program will not commit a memory safety fault - it will not release a lock it does not hold

More information

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

Introduction. Companion slides for The Art of Multiprocessor Programming by Maurice Herlihy & Nir Shavit Introduction Companion slides for The by Maurice Herlihy & Nir Shavit Moore s Law Transistor count still rising Clock speed flattening sharply 2 Moore s Law (in practice) 3 Nearly Extinct: the Uniprocesor

More information

FFQ: A Fast Single-Producer/Multiple-Consumer Concurrent FIFO Queue

FFQ: A Fast Single-Producer/Multiple-Consumer Concurrent FIFO Queue FFQ: A Fast Single-Producer/Multiple-Consumer Concurrent FIFO Queue Sergei Arnautov, Christof Fetzer, Bohdan Trach TU Dresden, Germany first.last@tu-dresden.de Pascal Felber U. Neuchâtel, Switzerland first.last@unine.ch

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

Building High Performance Queues in Rdb Databases

Building High Performance Queues in Rdb Databases Building High Performance Queues in Rdb Databases Thomas H. Musson Jeffrey S. Jalbert Cheryl P. Jalbert Keith W. Hare Jeff Haidet JCC Consulting, Inc. 1 Definition of Problem Business expected to increase

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

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

Blizzard: A Distributed Queue

Blizzard: A Distributed Queue Blizzard: A Distributed Queue Amit Levy (levya@cs), Daniel Suskin (dsuskin@u), Josh Goodwin (dravir@cs) December 14th 2009 CSE 551 Project Report 1 Motivation Distributed systems have received much attention

More information

Taming release-acquire consistency

Taming release-acquire consistency Taming release-acquire consistency Ori Lahav Nick Giannarakis Viktor Vafeiadis Max Planck Institute for Software Systems (MPI-SWS) POPL 2016 Weak memory models Weak memory models provide formal sound semantics

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

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

Composing Concurrency Control

Composing Concurrency Control Composing Concurrency Control Ofri Ziv Tel Aviv University, Israel ofriziv@tau.ac.il Alex Aiken Stanford University, USA aiken@cs.stanford.edu Guy Golan-Gueta Tel Aviv University, Israel ggolan@tau.ac.il

More information

Assignment No.1 What is ADT? Explain stack as an ADT with suitable example.

Assignment No.1 What is ADT? Explain stack as an ADT with suitable example. Programme:- MCA-Semester-II Subject Code 201 Data Structures What is ADT? Explain stack as an ADT with suitable example. You know what a queue is... Implement a queue class with Java. What is the cost

More information

Curriculum 2013 Knowledge Units Pertaining to PDC

Curriculum 2013 Knowledge Units Pertaining to PDC Curriculum 2013 Knowledge Units Pertaining to C KA KU Tier Level NumC Learning Outcome Assembly level machine Describe how an instruction is executed in a classical von Neumann machine, with organization

More information

CS 206 Introduction to Computer Science II

CS 206 Introduction to Computer Science II CS 206 Introduction to Computer Science II 03 / 31 / 2017 Instructor: Michael Eckmann Today s Topics Questions? Comments? finish RadixSort implementation some applications of stack Priority Queues Michael

More information

NOTICE WARNING CONCERNING COPYRIGHT RESTRICTIONS: The copyright law of the United States (title 17, U.S. Code) governs the making of photocopies or

NOTICE WARNING CONCERNING COPYRIGHT RESTRICTIONS: The copyright law of the United States (title 17, U.S. Code) governs the making of photocopies or NOTICE WARNING CONCERNING COPYRIGHT RESTRICTIONS: The copyright law of the United States (title 17, U.S. Code) governs the making of photocopies or other reproductions of copyrighted material. Any copying

More information

殷亚凤. Consistency and Replication. Distributed Systems [7]

殷亚凤. Consistency and Replication. Distributed Systems [7] Consistency and Replication Distributed Systems [7] 殷亚凤 Email: yafeng@nju.edu.cn Homepage: http://cs.nju.edu.cn/yafeng/ Room 301, Building of Computer Science and Technology Review Clock synchronization

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

A Consistency Framework for Iteration Operations in Concurrent Data Structures

A Consistency Framework for Iteration Operations in Concurrent Data Structures A Consistency Framework for Iteration Operations in Concurrent Data Structures Yiannis Nikolakopoulos, Anders Gidenstam, Marina Papatriantafilou, Philippas Tsigas Chalmers University of Technology, Gothenburg,

More information

Automated Refinement Checking of Asynchronous Processes. Rajeev Alur. University of Pennsylvania

Automated Refinement Checking of Asynchronous Processes. Rajeev Alur. University of Pennsylvania Automated Refinement Checking of Asynchronous Processes Rajeev Alur University of Pennsylvania www.cis.upenn.edu/~alur/ Intel Formal Verification Seminar, July 2001 Problem Refinement Checking Given two

More information

Memory Consistency. Minsoo Ryu. Department of Computer Science and Engineering. Hanyang University. Real-Time Computing and Communications Lab.

Memory Consistency. Minsoo Ryu. Department of Computer Science and Engineering. Hanyang University. Real-Time Computing and Communications Lab. Memory Consistency Minsoo Ryu Department of Computer Science and Engineering 2 Distributed Shared Memory Two types of memory organization in parallel and distributed systems Shared memory (shared address

More information

Reasoning about the C/C++ weak memory model

Reasoning about the C/C++ weak memory model Reasoning about the C/C++ weak memory model Viktor Vafeiadis Max Planck Institute for Software Systems (MPI-SWS) 13 October 2014 Talk outline I. Introduction Weak memory models The C11 concurrency model

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

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

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

Oracle Database 12c: JMS Sharded Queues

Oracle Database 12c: JMS Sharded Queues Oracle Database 12c: JMS Sharded Queues For high performance, scalable Advanced Queuing ORACLE WHITE PAPER MARCH 2015 Table of Contents Introduction 2 Architecture 3 PERFORMANCE OF AQ-JMS QUEUES 4 PERFORMANCE

More information

Pipelining combinational circuits

Pipelining combinational circuits Constructive Computer Architecture: Pipelining combinational circuits Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology September 18, 2013 http://csg.csail.mit.edu/6.s195

More information

Embedded Software Engineering

Embedded Software Engineering Embedded Software Engineering 3 Unit Course, Spring 2002 EECS Department, UC Berkeley Christoph Kirsch www.eecs.berkeley.edu/~fresco/giotto/course-2002 It s significant $4 billion development effort >

More information

Reliable Distributed System Approaches

Reliable Distributed System Approaches Reliable Distributed System Approaches Manuel Graber Seminar of Distributed Computing WS 03/04 The Papers The Process Group Approach to Reliable Distributed Computing K. Birman; Communications of the ACM,

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

CSE 613: Parallel Programming. Lecture 17 ( Concurrent Data Structures: Queues and Stacks )

CSE 613: Parallel Programming. Lecture 17 ( Concurrent Data Structures: Queues and Stacks ) CSE 613: Parallel Programming Lecture 17 ( Concurrent Data Structures: Queues and Stacks ) Rezaul A. Chowdhury Department of Computer Science SUNY Stony Brook Spring 2012 Desirable Properties of Concurrent

More information

Understanding Task Scheduling Algorithms. Kenjiro Taura

Understanding Task Scheduling Algorithms. Kenjiro Taura Understanding Task Scheduling Algorithms Kenjiro Taura 1 / 48 Contents 1 Introduction 2 Work stealing scheduler 3 Analyzing execution time of work stealing 4 Analyzing cache misses of work stealing 5 Summary

More information

Advanced Multiprocessor Programming

Advanced Multiprocessor Programming Advanced Multiprocessor Programming Jesper Larsson Träff traff@par.tuwien.ac.at Research Group Parallel Computing Faculty of Informatics, Institute of Information Systems Vienna University of Technology

More information

Consistency and Replication. Why replicate?

Consistency and Replication. Why replicate? Consistency and Replication Today: Consistency models Data-centric consistency models Client-centric consistency models Lecture 15, page 1 Why replicate? Data replication versus compute replication Data

More information

Lecture 21: Transactional Memory. Topics: consistency model recap, introduction to transactional memory

Lecture 21: Transactional Memory. Topics: consistency model recap, introduction to transactional memory Lecture 21: Transactional Memory Topics: consistency model recap, introduction to transactional memory 1 Example Programs Initially, A = B = 0 P1 P2 A = 1 B = 1 if (B == 0) if (A == 0) critical section

More information

Ownership of a queue for practical lock-free scheduling

Ownership of a queue for practical lock-free scheduling Ownership of a queue for practical lock-free scheduling Lincoln Quirk May 4, 2008 Abstract We consider the problem of scheduling tasks in a multiprocessor. Tasks cannot always be scheduled independently

More information

Concurrency User Guide

Concurrency User Guide Concurrency User Guide Release 1.0 Dylan Hackers January 26, 2019 CONTENTS 1 Basic Abstractions 3 1.1 Executors................................................. 3 1.2 Queues..................................................

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

Classical Distributed Algorithms with DDS

Classical Distributed Algorithms with DDS Classical Distributed Algorithms with DDS Sara Tucci-Piergiovanni, PhD Researcher CEA LIST Angelo Corsaro, PhD Chief Technology Officer PrismTech Outline DDS and QoS, properties of streams and local caches

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

Homework 2: Programming Component SCALABLE SERVER DESIGN: USING THREAD POOLS TO MANAGE AND LOAD BALANCE ACTIVE NETWORK

Homework 2: Programming Component SCALABLE SERVER DESIGN: USING THREAD POOLS TO MANAGE AND LOAD BALANCE ACTIVE NETWORK Homework 2: Programming Component SCALABLE SERVER DESIGN: USING THREAD POOLS TO MANAGE AND LOAD BALANCE ACTIVE NETWORK DUE DATE: Wednesday March 7 th, 2018 @ 5:00 pm CONNECTIONS VERSION 1.0 As part of

More information

Intel Thread Building Blocks, Part IV

Intel Thread Building Blocks, Part IV Intel Thread Building Blocks, Part IV SPD course 2017-18 Massimo Coppola 13/04/2018 1 Mutexes TBB Classes to build mutex lock objects The lock object will Lock the associated data object (the mutex) for

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

Computing Parable. The Archery Teacher. Courtesy: S. Keshav, U. Waterloo. Computer Science. Lecture 16, page 1

Computing Parable. The Archery Teacher. Courtesy: S. Keshav, U. Waterloo. Computer Science. Lecture 16, page 1 Computing Parable The Archery Teacher Courtesy: S. Keshav, U. Waterloo Lecture 16, page 1 Consistency and Replication Today: Consistency models Data-centric consistency models Client-centric consistency

More information

How to Win Coding Competitions: Secrets of Champions. Week 2: Computational complexity. Linear data structures Lecture 5: Stack. Queue.

How to Win Coding Competitions: Secrets of Champions. Week 2: Computational complexity. Linear data structures Lecture 5: Stack. Queue. How to Win Coding Competitions: Secrets of Champions Week 2: Computational complexity. Linear data structures Lecture 5: Stack. Queue. Deque Pavel Krotkov Saint Petersburg 2016 General overview Stack,

More information

Advanced Tool Architectures. Edited and Presented by Edward A. Lee, Co-PI UC Berkeley. Tool Projects. Chess Review May 10, 2004 Berkeley, CA

Advanced Tool Architectures. Edited and Presented by Edward A. Lee, Co-PI UC Berkeley. Tool Projects. Chess Review May 10, 2004 Berkeley, CA Advanced Tool Architectures Edited and Presented by Edward A. Lee, Co-PI UC Berkeley Chess Review May 10, 2004 Berkeley, CA Tool Projects Concurrent model-based design Giotto (Henzinger) E machine & S

More information