Yiannis Nikolakopoulos

Slides:



Advertisements
Similar presentations
Håkan Sundell, Chalmers University of Technology 1 Evaluating the performance of wait-free snapshots in real-time systems Björn Allvin.
Advertisements

A Coherent and Managed Runtime for ML on the SCC KC SivaramakrishnanLukasz Ziarek Suresh Jagannathan Purdue University SUNY Buffalo Purdue University.
© 2005 P. Kouznetsov Computing with Reads and Writes in the Absence of Step Contention Hagit Attiya Rachid Guerraoui Petr Kouznetsov School of Computer.
1 Chapter 4 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Synchronization.
Concurrent programming: From theory to practice Concurrent Algorithms 2014 Vasileios Trigonakis Georgios Chatzopoulos.
Multiprocessors— Large vs. Small Scale Multiprocessors— Large vs. Small Scale.
CS492B Analysis of Concurrent Programs Lock Basics Jaehyuk Huh Computer Science, KAIST.
ECE 454 Computer Systems Programming Parallel Architectures and Performance Implications (II) Ding Yuan ECE Dept., University of Toronto
Scalable Multi-Cache Simulation Using GPUs Michael Moeng Sangyeun Cho Rami Melhem University of Pittsburgh.
Evaluation of Message Passing Synchronization Algorithms in Embedded Systems 1 Evaluation of Message Passing Synchronization Algorithms in Embedded Systems.
Performance and power consumption evaluation of concurrent queue implementations 1 Performance and power consumption evaluation of concurrent queue implementations.
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
Toward Efficient Support for Multithreaded MPI Communication Pavan Balaji 1, Darius Buntinas 1, David Goodell 1, William Gropp 2, and Rajeev Thakur 1 1.
Concurrent Data Structures in Architectures with Limited Shared Memory Support Ivan Walulya Yiannis Nikolakopoulos Marina Papatriantafilou Philippas Tsigas.
Lock-free Cuckoo Hashing Nhan Nguyen & Philippas Tsigas ICDCS 2014 Distributed Computing and Systems Chalmers University of Technology Gothenburg, Sweden.
Transactional Memory Yujia Jin. Lock and Problems Lock is commonly used with shared data Priority Inversion –Lower priority process hold a lock needed.
1 Multiprocessors. 2 Idea: create powerful computers by connecting many smaller ones good news: works for timesharing (better than supercomputer) bad.
PRASHANTHI NARAYAN NETTEM.
1 Lecture 20: Protocols and Synchronization Topics: distributed shared-memory multiprocessors, synchronization (Sections )
SUPPORTING LOCK-FREE COMPOSITION OF CONCURRENT DATA OBJECTS Daniel Cederman and Philippas Tsigas.
Highly Available ACID Memory Vijayshankar Raman. Introduction §Why ACID memory? l non-database apps: want updates to critical data to be atomic and persistent.
Behavior of Synchronization Methods in Commonly Used Languages and Systems Yiannis Nikolakopoulos Joint work with: D. Cederman, B.
View-Oriented Parallel Programming for multi-core systems Dr Zhiyi Huang World 45 Univ of Otago.
Understanding Performance of Concurrent Data Structures on Graphics Processors Daniel Cederman, Bapi Chatterjee, Philippas Tsigas Distributed Computing.
1 Moshe Shadmon ScaleDB Scaling MySQL in the Cloud.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
ECE200 – Computer Organization Chapter 9 – Multiprocessors.
CSE 661 PAPER PRESENTATION
A Consistency Framework for Iteration Operations in Concurrent Data Structures Yiannis Nikolakopoulos A. Gidenstam M. Papatriantafilou P. Tsigas Distributed.
Maged M.Michael Michael L.Scott Department of Computer Science Univeristy of Rochester Presented by: Jun Miao.
Jeremy Denham April 7,  Motivation  Background / Previous work  Experimentation  Results  Questions.
Wait-Free Multi-Word Compare- And-Swap using Greedy Helping and Grabbing Håkan Sundell PDPTA 2009.
1 Lecture 19: Scalable Protocols & Synch Topics: coherence protocols for distributed shared-memory multiprocessors and synchronization (Sections )
CGS 3763 Operating Systems Concepts Spring 2013 Dan C. Marinescu Office: HEC 304 Office hours: M-Wd 11: :30 AM.
Lecture 20: Consistency Models, TM
Last Class: Introduction
Advanced Operating Systems CIS 720
Software Coherence Management on Non-Coherent-Cache Multicores
CS5102 High Performance Computer Systems Thread-Level Parallelism
Minh, Trautmann, Chung, McDonald, Bronson, Casper, Kozyrakis, Olukotun
Alternative system models
Concurrent Data Structures for Near-Memory Computing
The University of Adelaide, School of Computer Science
The University of Adelaide, School of Computer Science
Lecture 18: Coherence and Synchronization
Reactive Synchronization Algorithms for Multiprocessors
Challenges in Concurrent Computing
A Lock-Free Algorithm for Concurrent Bags
Anders Gidenstam Håkan Sundell Philippas Tsigas
CMSC 611: Advanced Computer Architecture
Architecture of Parallel Computers CSC / ECE 506 Summer 2006 Scalable Programming Models Lecture 11 6/19/2006 Dr Steve Hunter.
The University of Adelaide, School of Computer Science
CS703 - Advanced Operating Systems
Lecture 21: Synchronization and Consistency
Lecture 22: Consistency Models, TM
Lecture: Coherence and Synchronization
NOBLE: A Non-Blocking Inter-Process Communication Library
Lecture 25: Multiprocessors
Software Transactional Memory Should Not be Obstruction-Free
CS510 - Portland State University
CS 6290 Many-core & Interconnect
The University of Adelaide, School of Computer Science
Lecture 17 Multiprocessors and Thread-Level Parallelism
Lecture 24: Multiprocessors
Lecture 17 Multiprocessors and Thread-Level Parallelism
Lecture: Consistency Models, TM
Lecture 19: Coherence and Synchronization
Lecture 18: Coherence and Synchronization
The University of Adelaide, School of Computer Science
Lecture 17 Multiprocessors and Thread-Level Parallelism
Presentation transcript:

Yiannis Nikolakopoulos Distributed Computing and Systems Chalmers University of Technology Gothenburg, Sweden Concurrent Data Structures in Architectures with Limited Shared Memory Support Ivan Walulya Yiannis Nikolakopoulos Marina Papatriantafilou Philippas Tsigas

Concurrent Data Structures Parallel/Concurrent programming: Share data among threads/processes, sharing a uniform address space (shared memory) Inter-process/thread communication and synchronization Both a tool and a goal Yiannis Nikolakopoulos ioaniko@chalmers.se

Concurrent Data Structures: Implementations Coarse grained locking Easy but slow... Fine grained locking Fast/scalable but: error-prone, deadlocks Non-blocking Atomic hardware primitives (e.g. TAS, CAS) Good progress guarantees (lock/wait-freedom) Scalable Yiannis Nikolakopoulos ioaniko@chalmers.se

What’s happening in hardware? Multi-cores  many-cores “Cache coherency wall” [Kumar et al 2011] Shared address space will not scale Universal atomic primitives (CAS, LL/SC) harder to implement Shared memory  message passing Shared Local Cache Cache IA Core Yiannis Nikolakopoulos ioaniko@chalmers.se

Can we have Data Structures: Fast Scalable Good progress guarantees Cache IA Core Shared Local Networks on chip (NoC) Short distance between cores Message passing model support Shared memory support Eliminated cache coherency Limited support for synchronization primitives Can we have Data Structures: Fast Scalable Good progress guarantees Yiannis Nikolakopoulos ioaniko@chalmers.se

Yiannis Nikolakopoulos ioaniko@chalmers.se Outline Concurrent Data Structures Many-core architectures Intel’s SCC Concurrent FIFO Queues Evaluation Conclusion Not in the beginning Yiannis Nikolakopoulos ioaniko@chalmers.se

Single-chip Cloud Computer (SCC) Experimental processor by Intel 48 independent x86 cores arranged on 24 tiles NoC connects all tiles TestAndSet register per core Mention that is not available but is relevant because similar architectures appear Yiannis Nikolakopoulos ioaniko@chalmers.se

SCC: Architecture Overview Stay longer Message Passing Buffer (MPB) 16Kb Memory Controllers: to private & shared main memory Yiannis Nikolakopoulos ioaniko@chalmers.se

Programming Challenges in SCC Message Passing but… MPB small for large data transfers Data Replication is difficult No universal atomic primitives (CAS); no wait-free implementations [Herlihy91] Say that I repeat the challenges for the specific architectures Yiannis Nikolakopoulos ioaniko@chalmers.se

Yiannis Nikolakopoulos ioaniko@chalmers.se Outline Concurrent Data Structures Many-core architectures Intel’s SCC Concurrent FIFO Queues Evaluation Conclusion Not in the beginning Yiannis Nikolakopoulos ioaniko@chalmers.se

Concurrent FIFO Queues Main idea: Data are stored in shared off-chip memory Message passing for communication/coordination 2 design methodologies: Lock-based synchronization (2-lock Queue) Message passing-based synchronization (MP-Queue, MP-Acks) Need a goal after this Do not need the “case study” Yiannis Nikolakopoulos ioaniko@chalmers.se

Yiannis Nikolakopoulos ioaniko@chalmers.se 2-lock Queue Array based, in shared off-chip memory (SHM) Head/Tail pointers in MPBs 1 lock for each pointer [Michael&Scott96] TAS based locks on 2 cores Separate algorithmic contribution (flag bit) and implementation (lock-placement) We can use the chip overview here 2-lock Standard 2-lock Yiannis Nikolakopoulos ioaniko@chalmers.se

2-lock Queue: “Traditional” Enqueue Algorithm Acquire lock Read & Update Tail pointer (MPB) Add data (SHM) Release lock Show the traditional approach, the optimization and why Yiannis Nikolakopoulos ioaniko@chalmers.se

2-lock Queue: Optimized Enqueue Algorithm Acquire lock Read & Update Tail pointer (MPB) Release lock Add data to node SHM Set memory flag to dirty Show the traditional approach, the optimization and why Why? No Cache Coherency! Yiannis Nikolakopoulos ioaniko@chalmers.se

2-lock Queue: Dequeue Algorithm Acquire lock Read & Update Head pointer Release lock Check flag Read node data What about progress? Yiannis Nikolakopoulos ioaniko@chalmers.se

2-lock Queue: Implementation Locks? On which tile(s)? Head/Tail Pointers (MPB) Data nodes Yiannis Nikolakopoulos ioaniko@chalmers.se

Message Passing-based Queue Data nodes in SHM Access coordinated by a Server node who keeps Head/Tail pointers Enqueuers/Dequeuers request access through dedicated slots in MPB Successfully enqueued data are flagged with dirty bit Yiannis Nikolakopoulos ioaniko@chalmers.se

MP-Queue What if this fails and is never flagged? DEQ ENQ TAIL HEAD ADD DATA SPIN What if this fails and is never flagged? “Pairwise blocking” only 1 dequeue blocks Yiannis Nikolakopoulos ioaniko@chalmers.se

Adding Acknowledgements No more flags! Enqueue sends ACK when done Server maintains in SHM a private queue of pointers On ACK: Server adds data location to its private queue On Dequeue: Server returns only ACKed locations Yiannis Nikolakopoulos ioaniko@chalmers.se

MP-Acks No blocking between enqueues/dequeues TAIL HEAD ACK No blocking between enqueues/dequeues Yiannis Nikolakopoulos ioaniko@chalmers.se

Yiannis Nikolakopoulos ioaniko@chalmers.se Outline Concurrent Data Structures Many-core architectures Intel’s SCC Concurrent FIFO Queues Evaluation Conclusion Not in the beginning Yiannis Nikolakopoulos ioaniko@chalmers.se

Yiannis Nikolakopoulos ioaniko@chalmers.se Evaluation Perfomance? Scalability? Is it the same for all cores? Benchmark: Each core performs Enq/Deq at random High/Low contention Yiannis Nikolakopoulos ioaniko@chalmers.se

Measures Throughput: Data structure operations completed per time unit. 𝑓𝑎𝑖𝑟𝑛𝑒𝑠𝑠 Δ𝑡 =𝑚𝑖𝑛 min⁡( 𝑛 𝑖 ) 𝑖 𝑛 𝑖 𝑁 , 𝑖 𝑛 𝑖 𝑁 𝑚𝑎𝑥 ( 𝑛 𝑖 ) [Cederman et al 2013] Average operations per core Operations by core i Yiannis Nikolakopoulos ioaniko@chalmers.se

Throughput – High Contention Yiannis Nikolakopoulos ioaniko@chalmers.se

Fairness – High Contention Yiannis Nikolakopoulos ioaniko@chalmers.se

Throughput VS Lock Location Yiannis Nikolakopoulos ioaniko@chalmers.se

Throughput VS Lock Location Yiannis Nikolakopoulos ioaniko@chalmers.se

Yiannis Nikolakopoulos ioaniko@chalmers.se Conclusion Lock based queue High throughput Less fair Sensitive to lock locations, NoC performance MP based queues Lower throughput Fairer Better liveness properties Promising scalability Conclusions as a title Yiannis Nikolakopoulos ioaniko@chalmers.se

Thank you! ivanw@chalmers.se ioaniko@chalmers.se Yiannis Nikolakopoulos ioaniko@chalmers.se

Yiannis Nikolakopoulos ioaniko@chalmers.se Backup slides Yiannis Nikolakopoulos ioaniko@chalmers.se

Yiannis Nikolakopoulos ioaniko@chalmers.se Experimental Setup 533MHz cores, 800MHz mesh, 800MHz DDR3 Randomized Enq/Deq operations High/Low contention One thread per core 600ms per execution Averaged over 12 runs Yiannis Nikolakopoulos ioaniko@chalmers.se

Concurrent FIFO Queues Typical 2-lock queue [Michael&Scott96] Yiannis Nikolakopoulos ioaniko@chalmers.se