Parallelizing Data Race Detection Benjamin Wester Facebook David Devecsery, Peter Chen, Jason Flinn, Satish Narayanasamy University of Michigan.

Slides:



Advertisements
Similar presentations
1 Chao Wang, Yu Yang*, Aarti Gupta, and Ganesh Gopalakrishnan* NEC Laboratories America, Princeton, NJ * University of Utah, Salt Lake City, UT Dynamic.
Advertisements

An Case for an Interleaving Constrained Shared-Memory Multi-Processor Jie Yu and Satish Narayanasamy University of Michigan.
Gwendolyn Voskuilen, Faraz Ahmad, and T. N. Vijaykumar Electrical & Computer Engineering ISCA 2010.
Scalable Multi-Cache Simulation Using GPUs Michael Moeng Sangyeun Cho Rami Melhem University of Pittsburgh.
Goldilocks: Efficiently Computing the Happens-Before Relation Using Locksets Tayfun Elmas 1, Shaz Qadeer 2, Serdar Tasiran 1 1 Koç University, İstanbul,
OSDI ’10 Research Visions 3 October Epoch parallelism: One execution is not enough Jessica Ouyang, Kaushik Veeraraghavan, Dongyoon Lee, Peter Chen,
OSDI ’10 Research Visions 3 October Epoch parallelism: One execution is not enough Jessica Ouyang, Kaushik Veeraraghavan, Dongyoon Lee, Peter Chen,
Detecting and surviving data races using complementary schedules
Eraser: A Dynamic Data Race Detector for Multithreaded Programs STEFAN SAVAGE, MICHAEL BURROWS, GREG NELSON, PATRICK SOBALVARRO and THOMAS ANDERSON.
Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring Michelle Goodstein*, Shimin Chen †, Phillip B. Gibbons.
Dynamic Data Race Detection. Sources Eraser: A Dynamic Data Race Detector for Multithreaded Programs –Stefan Savage, Michael Burrows, Greg Nelson, Patric.
SOS: Saving Time in Dynamic Race Detection with Stationary Analysis Du Li, Witawas Srisa-an, Matthew B. Dwyer.
An efficient data race detector for DIOTA Michiel Ronsse, Bastiaan Stougie, Jonas Maebe, Frank Cornelis, Koen De Bosschere Department of Electronics and.
Atomicity in Multi-Threaded Programs Prachi Tiwari University of California, Santa Cruz CMPS 203 Programming Languages, Fall 2004.
Cormac Flanagan and Stephen Freund PLDI 2009 Slides by Michelle Goodstein 07/26/10.
CS533 Concepts of Operating Systems Class 3 Data Races and the Case Against Threads.
Execution Replay for Multiprocessor Virtual Machines George W. Dunlap Dominic Lucchetti Michael A. Fetterman Peter M. Chen.
Deterministic Logging/Replaying of Applications. Motivation Run-time framework goals –Collect a complete trace of a program’s user-mode execution –Keep.
Efficient dynamic race detection int x; void * t1(){ x = 2; } void * t2(){ x = 3; } main(){ pthread_create( t1 ); pthread_create( t2 ); printf( “x is %d\n”,
Dongyoon Lee, Benjamin Wester, Kaushik Veeraraghavan, Satish Narayanasamy, Peter M. Chen, and Jason Flinn University of Michigan, Ann Arbor Respec: Efficient.
Presenter : Shih-Tung Huang Tsung-Cheng Lin Kuan-Fu Kuo 2015/6/26 EICE team dIP: A Non-Intrusive Debugging IP for Dynamic Data Race Detection in Many-core.
DoublePlay: Parallelizing Sequential Logging and Replay Kaushik Veeraraghavan Dongyoon Lee, Benjamin Wester, Jessica Ouyang, Peter M. Chen, Jason Flinn,
DTHREADS: Efficient Deterministic Multithreading
Cormac Flanagan UC Santa Cruz Velodrome: A Sound and Complete Dynamic Atomicity Checker for Multithreaded Programs Jaeheon Yi UC Santa Cruz Stephen Freund.
/ PSWLAB Eraser: A Dynamic Data Race Detector for Multithreaded Programs By Stefan Savage et al 5 th Mar 2008 presented by Hong,Shin Eraser:
15-740/ Oct. 17, 2012 Stefan Muller.  Problem: Software is buggy!  More specific problem: Want to make sure software doesn’t have bad property.
University of Michigan Electrical Engineering and Computer Science 1 Dynamic Acceleration of Multithreaded Program Critical Paths in Near-Threshold Systems.
Parallelizing Security Checks on Commodity Hardware E.B. Nightingale, D. Peek, P.M. Chen and J. Flinn U Michigan.
Multi-core architectures. Single-core computer Single-core CPU chip.
Accelerating Precise Race Detection Using Commercially-Available Hardware Transactional Memory Support Serdar Tasiran Koc University, Istanbul, Turkey.
Uncovering the Multicore Processor Bottlenecks Server Design Summit Shay Gal-On Director of Technology, EEMBC.
- 1 - Dongyoon Lee, Peter Chen, Jason Flinn, Satish Narayanasamy University of Michigan, Ann Arbor Chimera: Hybrid Program Analysis for Determinism * Chimera.
Reduced Hardware NOrec: A Safe and Scalable Hybrid Transactional Memory Alexander Matveev Nir Shavit MIT.
Chapter 2 Parallel Architecture. Moore’s Law The number of transistors on a chip doubles every years. – Has been valid for over 40 years – Can’t.
Eraser: A Dynamic Data Race Detector for Multithreaded Programs STEFAN SAVAGE, MICHAEL BURROWS, GREG NELSON, PATRICK SOBALVARRO, and THOMAS ANDERSON Ethan.
Nicolas Tjioe CSE 520 Wednesday 11/12/2008 Hyper-Threading in NetBurst Microarchitecture David Koufaty Deborah T. Marr Intel Published by the IEEE Computer.
Pallavi Joshi* Mayur Naik † Koushik Sen* David Gay ‡ *UC Berkeley † Intel Labs Berkeley ‡ Google Inc.
Parallelizing Security Checks on Commodity Hardware Ed Nightingale Dan Peek, Peter Chen Jason Flinn Microsoft Research University of Michigan.
On-Demand Dynamic Software Analysis Joseph L. Greathouse Ph.D. Candidate Advanced Computer Architecture Laboratory University of Michigan December 12,
Automatically Exploiting Cross- Invocation Parallelism Using Runtime Information Jialu Huang, Thomas B. Jablin, Stephen R. Beard, Nick P. Johnson, and.
Drinking from Both Glasses: Adaptively Combining Pessimistic and Optimistic Synchronization for Efficient Parallel Runtime Support Man Cao Minjia Zhang.
…and region serializability for all JESSICA OUYANG, PETER CHEN, JASON FLINN & SATISH NARAYANASAMY UNIVERSITY OF MICHIGAN.
Ali Kheradmand, Baris Kasikci, George Candea Lockout: Efficient Testing for Deadlock Bugs 1.
Debugging Threaded Applications By Andrew Binstock CMPS Parallel.
Sound and Precise Analysis of Parallel Programs through Schedule Specialization Jingyue Wu, Yang Tang, Gang Hu, Heming Cui, Junfeng Yang Columbia University.
BarrierWatch: Characterizing Multithreaded Workloads across and within Program-Defined Epochs Socrates Demetriades and Sangyeun Cho Computer Frontiers.
Dongyoon Lee, Benjamin Wester, Kaushik Veeraraghavan, Satish Narayanasamy, Peter M. Chen, and Jason Flinn University of Michigan, Ann Arbor Respec: Efficient.
Detecting Atomicity Violations via Access Interleaving Invariants
Aditya Thakur Rathijit Sen Ben Liblit Shan Lu University of Wisconsin–Madison Workshop on Dynamic Analysis 2009 Cooperative Crug Isolation.
HARD: Hardware-Assisted lockset- based Race Detection P.Zhou, R.Teodorescu, Y.Zhou. HPCA’07 Shimin Chen LBA Reading Group Presentation.
University of Michigan Electrical Engineering and Computer Science 1 Embracing Heterogeneity with Dynamic Core Boosting Hyoun Kyu Cho and Scott Mahlke.
Execution Replay and Debugging. Contents Introduction Parallel program: set of co-operating processes Co-operation using –shared variables –message passing.
Introduction Goal: connecting multiple computers to get higher performance – Multiprocessors – Scalability, availability, power efficiency Job-level (process-level)
FastTrack: Efficient and Precise Dynamic Race Detection [FlFr09] Cormac Flanagan and Stephen N. Freund GNU OS Lab. 23-Jun-16 Ok-kyoon Ha.
IThreads A Threading Library for Parallel Incremental Computation Pramod Bhatotia Pedro Fonseca, Björn Brandenburg (MPI-SWS) Umut Acar (CMU) Rodrigo Rodrigues.
Kendo: Efficient Deterministic Multithreading in Software M. Olszewski, J. Ansel, S. Amarasinghe MIT to be presented in ASPLOS 2009 slides by Evangelos.
Incremental Parallel and Distributed Systems Pramod Bhatotia MPI-SWS & Saarland University April 2015.
Detecting Data Races in Multi-Threaded Programs
Optimistic Hybrid Analysis
On-Demand Dynamic Software Analysis
PHyTM: Persistent Hybrid Transactional Memory
Faster Data Structures in Transactional Memory using Three Paths
Yuan Yu(MSR) Tom Rodeheffer(MSR) Wei Chen(UC Berkeley) SOSP 2005
EECS 582 Midterm Review Mosharaf Chowdhury EECS 582 – F16.
Heming Cui, Jingyue Wu, John Gallagher, Huayang Guo, Junfeng Yang
Man Cao Minjia Zhang Aritra Sengupta Michael D. Bond
Optimistic Hybrid Analysis:
Introduction to CUDA.
Tim Harris (MSR Cambridge)
Srinivas Neginhal Anantharaman Kalyanaraman CprE 585: Survey Project
Presentation transcript:

Parallelizing Data Race Detection Benjamin Wester Facebook David Devecsery, Peter Chen, Jason Flinn, Satish Narayanasamy University of Michigan

Data Races Benjamin Wester - ASPLOS '132 TIME t1t1 t2t2 lock( l ) x = 1 unlock( l ) x = 3 lock( l ) x = 2 unlock( l )

Race Detection Benjamin Wester - ASPLOS '13 Normal run time TIME With race detector 3 Instrumentation + Analysis Detection is slow! 8x–200x Managed vs. binary Granularity Completeness Debug info gathered Matches app concurrency

Race Detection Benjamin Wester - ASPLOS '13 Normal run time TIME With race detector 4 Parallel race detector Detection is slow! 8x–200x Managed vs. binary Granularity Completeness Debug info gathered Matches app concurrency

How to use parallel hardware? Scale program? – Performance tied to app Parallel algorithm? – Lots of fine-grained dependencies Uniparallelism – Converts execution into parallel pipeline – Works for instrumentation Benjamin Wester - ASPLOS '135 [Wallace CGO’07, Nightingale ASPLOS’08]

Uniparallelism Benjamin Wester - ASPLOS '13 TIME 6

Uniparallelism Benjamin Wester - ASPLOS '13 TIME 7 Epoch-parallel Execution Epoch-sequential Execution

Uniparallelism Scales well: Epochs are independent execution units More efficient: Synchronization Benjamin Wester - ASPLOS '138 TIME

Add Detector… Scales well: Epochs are independent execution units More efficient: Synchronization & Lock elision Race detection depends on state! Benjamin Wester - ASPLOS '139 TIME Here!

Architecture Benjamin Wester - ASPLOS '1310 Epoch-sequential Epoch-parallel Commit

Moving Work Identify meaningful fast subset of analysis state – Low frequency, lightweight, self-contained – Run in Epoch-Sequential phase – Predicted and usable in parallel phase Symbolic execution – Replace missing state with symbols – Defer some computation to commit phase – Commit: replace symbols with concrete values Benjamin Wester - ASPLOS '1311

Architecture Benjamin Wester - ASPLOS '1312 Epoch-sequential Epoch-parallel Commit Instrument and predict fast subset of analysis state Perform deferred work on concrete values Full instrumentation Symbolic execution

Fast Slow State: Vector clocks – e.g. ⟨0, 1, 0⟩ – for each: – Thread – Lock – Variable x 2: last read(s), last write Example computation: Check( read_x ≤ thread_i ); write_x = thread_i Transitive reduction Use knowledge of happens-before relationship Parallel FastTrack Benjamin Wester - ASPLOS '1313

Fast Slow Parallel Eraser State: – Set of locks held by thread (lockset) – Lockset for each variable – Position in state machine for each variable Example computation: If state_x == SHARED then ls_x = ls_x ∩ {L, M} Lockset factorization Factor out common behavior Benjamin Wester - ASPLOS '1314

Parallel Performance Efficiency Scalability 2 worker threads as baseline 8-CPU Platform Benchmarks:  SPLASH-2 (water, lu, ocean, fft, radix)  Parallel app: pbzip2 Benjamin Wester - ASPLOS '1315

Efficiency Benjamin Wester - ASPLOS '1316 Exactly 2 cores

Efficiency Benjamin Wester - ASPLOS '1317 Median 13% faster Median 8% faster Exactly 2 cores

Scaling Parallel FastTrack Benjamin Wester - ASPLOS ' Worker Threads

Scaling Parallel FastTrack Benjamin Wester - ASPLOS '1319 Median 4.4x with 8 cores 2 Worker Threads

Scaling Parallel Eraser Benjamin Wester - ASPLOS '1320 Median 3.3x with 8 cores 2 Worker Threads

Conclusion  3-Phase Uniparallel architecture – Parallel FastTrack – Parallel Eraser  Parallel algorithms: – Are more efficient – Scale better Benjamin Wester - ASPLOS '1321

Questions? Benjamin Wester - ASPLOS '1322