FastTrack: Efficient and Precise Dynamic Race Detection (+ identifying destructive races)
|
|
- Agatha Copeland
- 5 years ago
- Views:
Transcription
1 FastTrack: Efficient and Precise Dynamic Race Detection (+ identifying destructive races) Cormac Flanagan UC Santa Cruz Stephen Freund Williams College
2 Multithreading and Multicore! Multithreaded programming is notoriously difficult, in part due to schedule-dependent behavior! race conditions, deadlocks, atomicity violations,...! difficult to detect, reproduce, or eliminate
3 Race Conditions! Two threads access a shared variable without synchronization, and at least one thread does a write! Very common 2003 Blackout ($6 Billion) Therac-25
4 Dynamic Race Detection Precision Happens Before [Lamport 78] Compute partial order of operations Ensure conflicting access are not concurrent Sound & Complete Eraser [SBN+ 97] Cost
5 Dynamic Race Detection Precision Track locks held on all accesses to var. - empty lock set implies possible race Unsound & Incomplete Happens Before [Lamport 78] Eraser [SBN+ 97] Cost
6 Dynamic Race Detection Precision Vector Clocks [M 88] Goldilocks [EQT 07] DJIT+ [ISZ 99,PS 03] TRaDe [CB 01]... Happens Before [Lamport 78] Barriers [PS 03] Initialization [vpg 01]... Eraser [SBN+ 97] Cost
7 Dynamic Race Detection Precision Vector Clocks [M 88] Goldilocks [EQT 07] DJIT+ [ISZ 99,PS 03] TRaDe [CB 01] RaceTrack [YRC... 05] MultiRace [PS 03] Hybrid Race Detector [OC 03]... Barriers [PS 03] Initialization [vpg 01]... Happens Before [Lamport 78] Eraser [SBN+ 97] Cost
8 Dynamic Race Detection Precision FastTrack Eraser [SBN+ 97] Vector Clocks [M 88] Goldilocks [EQT 07] DJIT+ [ISZ 99,PS 03] TRaDe [CB 01] Happens Before [Lamport 78] RaceTrack [YRC... 05] MultiRace Design [PS Criteria: 03] Hybrid Race Detector [OC 03] - sound... (find at least 1st race on each var) Barriers [PS 03] Initialization [vpg 01] - complete (no false alarms)... - efficient Insight: Accesses to a var are almost always totally ordered in the Happens-Before relation Cost
9 Happens-Before! Event Ordering: program order synchronization order! Types of Races: Write-Write Write-Read " (write before read) Read-Write " (read before write) Thread A x = 0 rel(m)... y = x Thread B acq(m) x = 1
10 VC A VC B L m W x R x A B A B A B A B A B
11 VC A VC B L m W x R x x = Write-Write 0 8 Check: 0 0 W x 4 VC0 A? ? Yes Read-Write Check: R x VC A?? Yes O(n) time
12 VC A VC B L m W x R x x =
13 VC A VC B L m W x R x x = rel(m)
14 VC A VC B L m W x R x x = rel(m) acq(m)
15 VC A VC B L m W x R x x = rel(m) acq(m) x =
16 VC A VC B L m W x R x 4 1 x = rel(m) Write-Read Check: W x VC A? ? No O(n) 4 0 time x = y = x
17 Write-Write and Write-Read Races Thread A Thread B Thread C Thread D x = 3 x = 1 x = 0??? read x O(n)
18 No Races Yet: Writes Totally Ordered! Thread A Thread B Thread C Thread D x = 3 x = 1 x = 0??? read x O(n)
19 No Races Yet: Writes Totally Ordered! Thread A Thread B Thread C Thread D x = 3 x = 1 x = 0? read x O(1)
20 VC A VC B L m W x Last Write "Epoch" x = @B @A Write-Write Check: W x VC A? 1@B 4 1? Yes (1! 1?) O(1) time
21 VC A VC B L m W x 4 1 x = rel(m) acq(m) 4 8 x = @A 2 1 4@A 4 1 4@A 4 1 4@A 4 1 8@B
22 VC A VC B L m W x 4 1 x = rel(m) y = x @A Write-Read Check: W x VC A? 0 8@B (8! 1?) 0 0 4@A 5 1? No 4 0 4@A 4 acq(m) @A x = @B O(1) time
23 Read-Write Races -- Ordered Reads Thread A Thread B Thread C Thread D read x read x read x? x = 2 Most common case: thread-local, lock-protected,...
24 Read-Write Races -- Unordered Reads Thread A Thread B Thread C x = 0 fork read x? read x?? read x x = 2
25 VC A VC B W x R x 7 0 x = fork read x 8 0 x = @A @A - read x 7 1 7@A 1@B 7@A @A 8 1 Read-Write Check: R x VC A? O(1) O(n) O(n) ? No
26 Thread A Thread B Thread C Thread D read x? read x? x = 2 O(n)
27 Thread A Thread B Thread C Thread D read x read x x = 2
28 Thread A Thread B Thread C Thread D read x read x?? x = 2? x = 3 O(n)
29 Thread A Thread B Thread C Thread D read x read x Forget VC for R x and switch back to "last read epoch" x = 2? x = 3 O(1)
30 RoadRunner Architecture Standard JVM Instrumented Bytecode RoadRunner Instrumenter Event Stream A: acq(m) A: read(x) B: write(y) A: rel(m) Back-End Checker Java Bytecode Error: race on x...
31 Validation! Six race condition checkers all use RoadRunner share common components (eg, VectorClock) profiled and optimized! Further optimization opportunities unsound extensions, dynamic escape analysis, static analysis, implement inside JVM, hardware support,...! 15 Benchmarks 250 KLOC locks, wait/notify, fork/join, barriers,...
32 Warnings false positives 3 false negatives Eraser [SBN+ 97] MultiRace [PS 03] GoldiLocks [EQT 07] Basic VC [M 88] DJIT+ [PS 03] FastTrack
33 Slowdown (x Base Time) Empty Eraser MultiRace Goldilocks Basic VC DJIT+ FastTrack
34 O(n) Vector Clock Operations 1.0E E E+9 Basic VC DJIT+ FastTrack 1.0E+8 1.0E+7 1.0E+6 1.0E+5 1.0E+4 1.0E+3 1.0E+2 1.0E+1 1.0E+0 colt crypt lufact moldyn montecarlo mtrt raja raytracer sparse series sor tsp elevator philo hedc jbb
35 O(n) Vector Clock Operations 1.0E E E+9 1.0E+8 1.0E+7 1.0E+6 1.0E+5 1.0E+4 1.0E+3 1.0E+2 1.0E % of all ops are Reads/Writes R/W ops requiring O(n) time: Basic VC 100% DJIT+ 26.0% FastTrack <0.1% Basic VC DJIT+ FastTrack 1.0E+0 colt crypt lufact moldyn montecarlo mtrt raja raytracer sparse series sor tsp elevator philo hedc jbb
36 Memory Usage! FastTrack allocated ~200x fewer VCs Basic VC, DJIT+ Checker Memory Overhead 7.9x FastTrack 2.8x (Note: VCs for dead objects can be garbage collected)! Improvements accordion clocks [CB 01] analysis granularity [PS 03, YRC 05] (see paper)
37 Eclipse 3.4! Scale > 6,000 classes 24 threads custom sync. idioms! Precision (tested 5 common tasks) Eraser: ~1000 warnings FastTrack: ~30 warnings! Performance on compute-bound tasks > 2x speed of other precise checkers same as Eraser
38 Beyond Detecting Race Conditions! FastTrack finds real race conditions races correlated with defects cause unintuitive behavior on relaxed memory! Which race conditions are real bugs? that cause erroneous behaviors (crashes, etc) and are not benign race conditions
39
40 Thread 0 Thread 1 Thread 2 p = null! px = 0! py = 0! fork 1,2! read p // non-null! read px //?! read p // null! acquire! read p // null! p = new Point! px = 1! py = 1! release! read px // get 1! read py // get 1!
41 Thread 0 Thread 1 Thread 2 p = null! px = 0! py = 0! fork 1,2! read p // non-null! read px //?! read p // null! acquire! read p // null! p = new Point! px = 1! py = 1! release! read px // get 1! read py // get 1!
42 Thread 0 Thread 1 Thread 2 p = null! px = 0! py = 0! fork 1,2! read p // non-null! read px //?! read p // null! acquire! read p // null! p = new Point! px = 1! py = 1! release! read px // get 1! read py // get 1!! Race: can return either write (mm non-determinism)! Typical JVM: mostly sequentially consistent! Adversarial memory use heuristics to return older stale values
43 Adversarial Memory! Record history of all writes (plus VCs) to racy variables! At read determine all visible writes legal under JMM heuristically pick one likely to crash target program! Six heuristics: Sequentially consistent: return last write Oldest: return most stale value Oldest-but-different: never return same val twice " if (p!= null) p.draw() Random, Random-but-different
44 Experimental Results
FastTrack: Efficient and Precise Dynamic Race Detection By Cormac Flanagan and Stephen N. Freund
FastTrack: Efficient and Precise Dynamic Race Detection By Cormac Flanagan and Stephen N. Freund doi:10.1145/1839676.1839699 Abstract Multithreaded programs are notoriously prone to race conditions. Prior
More informationAtomicity for Reliable Concurrent Software. Race Conditions. Motivations for Atomicity. Race Conditions. Race Conditions. 1. Beyond Race Conditions
Towards Reliable Multithreaded Software Atomicity for Reliable Concurrent Software Cormac Flanagan UC Santa Cruz Joint work with Stephen Freund Shaz Qadeer Microsoft Research 1 Multithreaded software increasingly
More informationCooperative Concurrency for a Multicore World
Cooperative Concurrency for a Multicore World Stephen Freund Williams College Cormac Flanagan, Tim Disney, Caitlin Sadowski, Jaeheon Yi, UC Santa Cruz Controlling Thread Interference: #1 Manually x = 0;
More informationAdversarial Memory for Detecting Destructive Races
Adversarial Memory for Detecting Destructive Races Cormac Flanagan Computer Science Department University of California at Santa Cruz Santa Cruz, CA 95064 Stephen N. Freund Computer Science Department
More informationTypes for Precise Thread Interference
Types for Precise Thread Interference Jaeheon Yi, Tim Disney, Cormac Flanagan UC Santa Cruz Stephen Freund Williams College October 23, 2011 2 Multiple Threads Single Thread is a non-atomic read-modify-write
More informationC. Flanagan Dynamic Analysis for Atomicity 1
1 Atomicity The method inc() is atomic if concurrent threads do not interfere with its behavior Guarantees that for every execution acq(this) x t=i y i=t+1 z rel(this) acq(this) x y t=i i=t+1 z rel(this)
More informationAtomicity. Experience with Calvin. Tools for Checking Atomicity. Tools for Checking Atomicity. Tools for Checking Atomicity
1 2 Atomicity The method inc() is atomic if concurrent ths do not interfere with its behavior Guarantees that for every execution acq(this) x t=i y i=t+1 z rel(this) acq(this) x y t=i i=t+1 z rel(this)
More informationSideTrack: Generalizing Dynamic Atomicity Analysis
SideTrack: Generalizing Dynamic Atomicity Analysis Jaeheon Yi jaeheon@cs.ucsc.edu Caitlin Sadowski supertri@cs.ucsc.edu Computer Science Department University of California at Santa Cruz Santa Cruz, CA
More informationCalFuzzer: An Extensible Active Testing Framework for Concurrent Programs Pallavi Joshi 1, Mayur Naik 2, Chang-Seo Park 1, and Koushik Sen 1
CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs Pallavi Joshi 1, Mayur Naik 2, Chang-Seo Park 1, and Koushik Sen 1 1 University of California, Berkeley, USA {pallavi,parkcs,ksen}@eecs.berkeley.edu
More informationSound Thread Local Analysis for Lockset-Based Dynamic Data Race Detection
Wellesley College Wellesley College Digital Scholarship and Archive Honors Thesis Collection 2017 Sound Thread Local Analysis for Lockset-Based Dynamic Data Race Detection Samuila Mincheva sminchev@wellesley.edu
More informationHybrid Static-Dynamic Analysis for Statically Bounded Region Serializability
Hybrid Static-Dynamic Analysis for Statically Bounded Region Serializability Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Programming
More informationDynamic Analysis. CS252r Fall 2015
Dynamic Analysis CS252r Fall 2015 Reading The Concept of Dynamic Analysis by Thomas Ball, FSE 1999 Efficient Path Profiling by Thomas Ball and James Larus, MICRO 1996 Adversarial Memory for Destructive
More informationEmbedded System Programming
Embedded System Programming Multicore ES (Module 40) Yann-Hang Lee Arizona State University yhlee@asu.edu (480) 727-7507 Summer 2014 The Era of Multi-core Processors RTOS Single-Core processor SMP-ready
More informationPart 3: Beyond Reduction
Lightweight Analyses For Reliable Concurrency Part 3: Beyond Reduction Stephen Freund Williams College joint work with Cormac Flanagan (UCSC), Shaz Qadeer (MSR) Busy Acquire Busy Acquire void busy_acquire()
More informationPACER: Proportional Detection of Data Races
PACER: Proportional Detection of Data Races Michael D. Bond Katherine E. Coons Kathryn S. McKinley Department of Computer Science, The University of Texas at Austin {mikebond,coonske,mckinley}@cs.utexas.edu
More informationCooperative Reasoning for Preemptive Execution
Cooperative Reasoning for Preemptive Execution Jaeheon Yi Caitlin Sadowski Cormac Flanagan Computer Science Department University of California at Santa Cruz Santa Cruz, CA 95064 {jaeheon,supertri,cormac@cs.ucsc.edu
More informationMore BSOD Embarrassments. Moore s Law. Programming With Threads. Moore s Law is Over. Analysis of Concurrent Software. Types for Race Freedom
Moore s Law Analysis of Concurrent Software Types for Race Freedom Transistors per chip doubles every 18 months Cormac Flanagan UC Santa Cruz Stephen N. Freund Williams College Shaz Qadeer Microsoft Research
More informationRuntime Atomicity Analysis of Multi-threaded Programs
Runtime Atomicity Analysis of Multi-threaded Programs Focus is on the paper: Atomizer: A Dynamic Atomicity Checker for Multithreaded Programs by C. Flanagan and S. Freund presented by Sebastian Burckhardt
More informationDeterministic Replay and Data Race Detection for Multithreaded Programs
Deterministic Replay and Data Race Detection for Multithreaded Programs Dongyoon Lee Computer Science Department - 1 - The Shift to Multicore Systems 100+ cores Desktop/Server 8+ cores Smartphones 2+ cores
More information11/19/2013. Imperative programs
if (flag) 1 2 From my perspective, parallelism is the biggest challenge since high level programming languages. It s the biggest thing in 50 years because industry is betting its future that parallel programming
More informationRedCard: Redundant Check Elimination for Dynamic Race Detectors
RedCard: Redundant Check Elimination for Dynamic Race Detectors Cormac Flanagan 1 and Stephen N. Freund 2 1 University of California at Santa Cruz 2 Williams College Abstract. Precise dynamic race detectors
More informationMotivation & examples Threads, shared memory, & synchronization
1 Motivation & examples Threads, shared memory, & synchronization How do locks work? Data races (a lower level property) How do data race detectors work? Atomicity (a higher level property) Concurrency
More information7/6/2015. Motivation & examples Threads, shared memory, & synchronization. Imperative programs
Motivation & examples Threads, shared memory, & synchronization How do locks work? Data races (a lower level property) How do data race detectors work? Atomicity (a higher level property) Concurrency exceptions
More informationDynamic Monitoring Tool based on Vector Clocks for Multithread Programs
, pp.45-49 http://dx.doi.org/10.14257/astl.2014.76.12 Dynamic Monitoring Tool based on Vector Clocks for Multithread Programs Hyun-Ji Kim 1, Byoung-Kwi Lee 2, Ok-Kyoon Ha 3, and Yong-Kee Jun 1 1 Department
More informationOptimized Run-Time Race Detection And Atomicity Checking Using Partial Discovered Types
Optimized Run-Time Race Detection And Atomicity Checking Using Partial Discovered Types Rahul Agarwal Amit Sasturkar Liqiang Wang Scott D. Stoller ABSTRACT Concurrent programs are notorious for containing
More informationArray Shadow State Compression for Precise Dynamic Race Detection Williams College Technical Report CSTR , May, 2015
rray Shadow State Compression for Precise Dynamic Race Detection Williams College Technical Report CSTR-201510, May, 2015 James Wilcox University of Washington Parker Finch Cognius Cormac Flanagan University
More informationLightweight Data Race Detection for Production Runs
Lightweight Data Race Detection for Production Runs Swarnendu Biswas, UT Austin Man Cao, Ohio State University Minjia Zhang, Microsoft Research Michael D. Bond, Ohio State University Benjamin P. Wood,
More informationDoubleChecker: Efficient Sound and Precise Atomicity Checking
DoubleChecker: Efficient Sound and Precise Atomicity Checking Swarnendu Biswas, Jipeng Huang, Aritra Sengupta, and Michael D. Bond The Ohio State University PLDI 2014 Impact of Concurrency Bugs Impact
More informationMultiJav: A Distributed Shared Memory System Based on Multiple Java Virtual Machines. MultiJav: Introduction
: A Distributed Shared Memory System Based on Multiple Java Virtual Machines X. Chen and V.H. Allan Computer Science Department, Utah State University 1998 : Introduction Built on concurrency supported
More informationEraser: Dynamic Data Race Detection
Eraser: Dynamic Data Race Detection 15-712 Topics overview Concurrency and race detection Framework: dynamic, static Sound vs. unsound Tools, generally: Binary rewriting (ATOM, Etch,...) and analysis (BAP,
More informationCompiler Techniques For Memory Consistency Models
Compiler Techniques For Memory Consistency Models Students: Xing Fang (Purdue), Jaejin Lee (Seoul National University), Kyungwoo Lee (Purdue), Zehra Sura (IBM T.J. Watson Research Center), David Wong (Intel
More informationHEAT: An Integrated Static and Dynamic Approach for Thread Escape Analysis
HEAT: An Integrated Static and Dynamic Approach for Thread Escape Analysis Qichang Chen and Liqiang Wang Department of Computer Science University of Wyoming {qchen2, wang@cs.uwyo.edu Zijiang Yang Department
More informationFinding Concurrency Bugs in Java
July 25, 2004 Background Our Work Recommendations Background Our Work Programmers are Not Scared Enough Java makes threaded programming too easy Language often hides consequences of incorrect synchronization
More informationToward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization
Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization Aritra Sengupta Man Cao Michael D. Bond Milind Kulkarni Ohio State University Purdue University {sengupta,caoma,mikebond}@cse.ohio-state.edu
More informationAtomChase: Directed Search Towards Atomicity Violations
AtomChase: Directed Search Towards Atomicity Violations Mahdi Eslamimehr, Mohsen Lesani Viewpoints Research Institute, 1025 Westwood Blvd 2nd flr, Los Angeles, CA 90024 t: (310) 208-0524 AtomChase: Directed
More informationToward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization
Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization Aritra Sengupta, Man Cao, Michael D. Bond and Milind Kulkarni 1 PPPJ 2015, Melbourne, Florida, USA Programming
More informationJVM Independent Replay in Java
JVM Independent Replay in Java RV 04 April 3, 2004, Barcelona, Spain Viktor Schuppan, Marcel Baur, Armin Biere Computer Systems Institute, ETH Zürich http://www.inf.ethz.ch/ schuppan/ Introduction 1 How
More information1. Beyond Race Conditions 2. Enables Sequential Reasoning 3. Simple Specification
Motivations for Atomicity Lightweight Analyses For Reliable Concurrency Stephen Freund Williams College 1. Beyond Race Conditions 2. Enables Sequential Reasoning 3. Simple Specification joint work with
More informationChimera: Hybrid Program Analysis for Determinism
Chimera: Hybrid Program Analysis for Determinism Dongyoon Lee, Peter Chen, Jason Flinn, Satish Narayanasamy University of Michigan, Ann Arbor - 1 - * Chimera image from http://superpunch.blogspot.com/2009/02/chimera-sketch.html
More informationA Serializability Violation Detector for Shared-Memory Server Programs
A Serializability Violation Detector for Shared-Memory Server Programs Min Xu Rastislav Bodík Mark Hill University of Wisconsin Madison University of California, Berkeley Serializability Violation Detector:
More informationEfficient Data Race Detection for C/C++ Programs Using Dynamic Granularity
Efficient Data Race Detection for C/C++ Programs Using Young Wn Song and Yann-Hang Lee Computer Science and Engineering Arizona State University Tempe, AZ, 85281 ywsong@asu.edu, yhlee@asu.edu Abstract
More informationPart IV: Exploiting Purity for Atomicity
Busy Acquire Part IV: Exploiting Purity for Atomicity atomic void busy_acquire() { if (CAS(m,0,1)) break; CAS(m,0,1) CAS(m,0,1) CAS(m,0,1) (fails) (fails) (succeeds) boolean b[max]; // b[i]==true iff block
More informationHybrid Analysis for Partial Order Reduction of Programs with Arrays
Hybrid Analysis for Partial Order Reduction of Programs with Arrays Pavel Parízek Charles University in Prague, Faculty of Mathematics and Physics, Department of Distributed and Dependable Systems Abstract.
More informationHybrid Dynamic Data Race Detection
Hybrid Dynamic Data Race Detection Robert O Callahan Jong-Deok Choi IBM T.J. Watson Research Center ACM SIGPLAN 2003 Symposium on Principles and Practice of Parallel Programming (PPoPP 03) San Diego, CA,
More informationCMSC 714 Lecture 14 Lamport Clocks and Eraser
Notes CMSC 714 Lecture 14 Lamport Clocks and Eraser Midterm exam on April 16 sample exam questions posted Research project questions? Alan Sussman (with thanks to Chris Ackermann) 2 Lamport Clocks Distributed
More informationNDSeq: Runtime Checking for Nondeterministic Sequential Specs of Parallel Correctness
EECS Electrical Engineering and Computer Sciences P A R A L L E L C O M P U T I N G L A B O R A T O R Y NDSeq: Runtime Checking for Nondeterministic Sequential Specs of Parallel Correctness Jacob Burnim,
More informationDetecting Atomic-Set Serializability Violations in Multithreaded Programs through Active Randomized Testing *
Detecting Atomic-Set Serializability Violations in Multithreaded Programs through Active Randomized Testing * Zhifeng Lai and S.C. Cheung Department of Computer Science and Engineering Hong Kong University
More informationStatic Conflict Analysis for Multi-Threaded Object-Oriented Programs
Static Conflict Analysis for Multi-Threaded Object-Oriented Programs Christoph von Praun and Thomas R. Gross Laboratory for Software Technology ETH Zürich 8092 Zürich, Switzerland ABSTRACT A compiler for
More informationSound Predictive Race Detection in Polynomial Time
Sound Predictive Race Detection in Polynomial Time Yannis Smaragdakis University of Athens and University of Massachusetts, Amherst smaragd@di.uoa.gr Jacob M. Evans University of Massachusetts, Amherst
More informationFalcon: Fault Localization in Concurrent Programs
Falcon: Fault Localization in Concurrent Programs Sangmin Park, Richard W. Vuduc, and Mary Jean Harrold College of Computing Georgia Institute of Technology E-mail: {sangminp richie harrold}@cc.gatech.edu
More informationThe Java Memory Model
Jeremy Manson 1, William Pugh 1, and Sarita Adve 2 1 University of Maryland 2 University of Illinois at Urbana-Champaign Presented by John Fisher-Ogden November 22, 2005 Outline Introduction Sequential
More informationDo you have to reproduce the bug on the first replay attempt?
Do you have to reproduce the bug on the first replay attempt? PRES: Probabilistic Replay with Execution Sketching on Multiprocessors Soyeon Park, Yuanyuan Zhou University of California, San Diego Weiwei
More informationSoftware Analysis Techniques for Detecting Data Race
Software Analysis Techniques for Detecting Data Race [CS 5204 OS Course Project: Fall 2004] Pilsung Kang Department of Computer Science Virginia Tech kangp@vt.edu ABSTRACT Data races are a multithreading
More informationjpredictor: A Predictive Runtime Analysis Tool for Java
jpredictor: A Predictive Runtime Analysis Tool for Java Feng Chen CS Department University of Illinois, Urbana fengchen@cs.uiuc.edu Traian Florin Şerbănuţă CS Department University of Illinois, Urbana
More informationBeyond Reduction... Busy Acquire. Busy Acquire. alloc. alloc. Non-Serial Execution: Serial Execution: Atomic but not reducible
Busy Acquire Beyond Reduction... if (CAS(m,0,1)) break; if (m == 0) { m = 1; return true; else { return false; 1 2 Busy Acquire if (CAS(m,0,1)) break; Non-Serial Execution: (fails) (fails) (succeeds) Serial
More informationProceedings of the Third Virtual Machine Research and Technology Symposium
USENIX Association Proceedings of the Third Virtual Machine Research and Technology Symposium San Jose, CA, USA May 6 7, 2004 2004 by The USENIX Association All Rights Reserved For more information about
More informationCompiling Multi-Threaded Object-Oriented Programs
Compiling Multi-Threaded Object-Oriented Programs (Preliminary Version) Christoph von Praun and Thomas R. Gross Laboratory for Software Technology Department Informatik ETH Zürich 8092 Zürich, Switzerland
More informationFoundations of the C++ Concurrency Memory Model
Foundations of the C++ Concurrency Memory Model John Mellor-Crummey and Karthik Murthy Department of Computer Science Rice University johnmc@rice.edu COMP 522 27 September 2016 Before C++ Memory Model
More informationValor: Efficient, Software-Only Region Conflict Exceptions
to Reuse * * Evaluated * OOPSLA * Artifact * AEC Valor: Efficient, Software-Only Region Conflict Exceptions Swarnendu Biswas Minjia Zhang Michael D. Bond Brandon Lucia Ohio State University (USA) Carnegie
More informationLegato: Bounded Region Serializability Using Commodity Hardware Transactional Memory. Aritra Sengupta Man Cao Michael D. Bond and Milind Kulkarni
Legato: Bounded Region Serializability Using Commodity Hardware al Memory Aritra Sengupta Man Cao Michael D. Bond and Milind Kulkarni 1 Programming Language Semantics? Data Races C++ no guarantee of semantics
More informationNondeterminism is Unavoidable, but Data Races are Pure Evil
Nondeterminism is Unavoidable, but Data Races are Pure Evil Hans-J. Boehm HP Labs 5 November 2012 1 Low-level nondeterminism is pervasive E.g. Atomically incrementing a global counter is nondeterministic.
More informationMULTITHREADING has become a common programming
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 32, NO. 2, FEBRUARY 2006 93 Runtime Analysis of Atomicity for Multithreaded Programs Liqiang Wang and Scott D. Stoller Abstract Atomicity is a correctness
More informationJava Memory Model. Jian Cao. Department of Electrical and Computer Engineering Rice University. Sep 22, 2016
Java Memory Model Jian Cao Department of Electrical and Computer Engineering Rice University Sep 22, 2016 Content Introduction Java synchronization mechanism Double-checked locking Out-of-Thin-Air violation
More informationPotential violations of Serializability: Example 1
CSCE 6610:Advanced Computer Architecture Review New Amdahl s law A possible idea for a term project Explore my idea about changing frequency based on serial fraction to maintain fixed energy or keep same
More informationAutomatically Classifying Benign and Harmful Data Races Using Replay Analysis
Automatically Classifying Benign and Harmful Data Races Using Replay Analysis Satish Narayanasamy, Zhenghao Wang, Jordan Tigani, Andrew Edwards, Brad Calder Microsoft University of California, San Diego
More informationAtomicity via Source-to-Source Translation
Atomicity via Source-to-Source Translation Benjamin Hindman Dan Grossman University of Washington 22 October 2006 Atomic An easier-to-use and harder-to-implement primitive void deposit(int x){ synchronized(this){
More informationTom Ball Sebastian Burckhardt Madan Musuvathi Microsoft Research
Tom Ball (tball@microsoft.com) Sebastian Burckhardt (sburckha@microsoft.com) Madan Musuvathi (madanm@microsoft.com) Microsoft Research P&C Parallelism Concurrency Performance Speedup Responsiveness Correctness
More informationTesting Concurrent Java Programs Using Randomized Scheduling
Testing Concurrent Java Programs Using Randomized Scheduling Scott D. Stoller Computer Science Department State University of New York at Stony Brook http://www.cs.sunysb.edu/ stoller/ 1 Goal Pillars of
More informationCS-XXX: Graduate Programming Languages. Lecture 20 Shared-Memory Parallelism and Concurrency. Dan Grossman 2012
CS-XXX: Graduate Programming Languages Lecture 20 Shared-Memory Parallelism and Concurrency Dan Grossman 2012 Concurrency and Parallelism PL support for concurrency/parallelism a huge topic Increasingly
More informationThe New Java Technology Memory Model
The New Java Technology Memory Model java.sun.com/javaone/sf Jeremy Manson and William Pugh http://www.cs.umd.edu/~pugh 1 Audience Assume you are familiar with basics of Java technology-based threads (
More informationCMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Synchronization in Java Department of Computer Science University of Maryland, College Park Multithreading Overview Motivation & background Threads Creating Java
More informationLightweight Data Race Detection for Production Runs
Lightweight Data Race Detection for Production Runs Ohio State CSE Technical Report #OSU-CISRC-1/15-TR01; last updated August 2016 Swarnendu Biswas Ohio State University biswass@cse.ohio-state.edu Michael
More informationDetecting Data Races in Multi-Threaded Programs
Slide 1 / 22 Detecting Data Races in Multi-Threaded Programs Eraser A Dynamic Data-Race Detector for Multi-Threaded Programs John C. Linford Slide 2 / 22 Key Points 1. Data races are easy to cause and
More informationW4118: concurrency error. Instructor: Junfeng Yang
W4118: concurrency error Instructor: Junfeng Yang Goals Identify patterns of concurrency errors (so you can avoid them in your code) Learn techniques to detect concurrency errors (so you can apply these
More informationScalable Thread Sharing Analysis
Scalable Thread Sharing Analysis Jeff Huang Parasol Laboratory Texas A&M University je @cse.tamu.edu ABSTRACT We present two scalable algorithms for identifying program locations that access thread-shared
More informationIdentifying Ad-hoc Synchronization for Enhanced Race Detection
Identifying Ad-hoc Synchronization for Enhanced Race Detection IPD Tichy Lehrstuhl für Programmiersysteme IPDPS 20 April, 2010 Ali Jannesari / Walter F. Tichy KIT die Kooperation von Forschungszentrum
More informationA Case for System Support for Concurrency Exceptions
A Case for System Support for Concurrency Exceptions Luis Ceze, Joseph Devietti, Brandon Lucia and Shaz Qadeer University of Washington {luisceze, devietti, blucia0a}@cs.washington.edu Microsoft Research
More informationEraser : A dynamic data race detector for multithreaded programs By Stefan Savage et al. Krish 9/1/2011
Eraser : A dynamic data race detector for multithreaded programs By Stefan Savage et al. Krish 9/1/2011 MOTIVATION. Only parallel programs can benefit from today s multi-core processors Multithreading
More informationRandomized Active Atomicity Violation Detection in Concurrent Programs
Randomized Active Atomicity Violation Detection in Concurrent Programs Chang-Seo Park EECS Department, UC Berkeley, CA, USA. parkcs@cs.berkeley.edu Koushik Sen EECS Department, UC Berkeley, CA, USA. ksen@cs.berkeley.edu
More informationA Parameterized Type System for Race-Free Java Programs
A Parameterized Type System for Race-Free Java Programs Chandrasekhar Boyapati Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology {chandra, rinard@lcs.mit.edu Data races
More informationDevelopment of Technique for Healing Data Races based on Software Transactional Memory
, pp.482-487 http://dx.doi.org/10.14257/astl.2016.139.96 Development of Technique for Healing Data Races based on Software Transactional Memory Eu-Teum Choi 1,, Kun Su Yoon 2, Ok-Kyoon Ha 3, Yong-Kee Jun
More informationPrecise and Maximal Race Detection from Incomplete Traces
Precise and Maximal Race Detection from Incomplete Traces Jeff Huang Texas A&M University, USA jeff@cse.tamu.edu Arun K. Rajagopalan Texas A&M University, USA arunxls@tamu.edu Abstract We present RDIT,
More informationCorrectness of Partial Escape Analysis for Multithreading Optimization
Abstract Dustin Rhodes UC Santa Cruz dustin@soe.ucsc.edu Correctness of Partial Escape Analysis for Multithreading Optimization Compilers often use escape analysis to elide locking operations on thread-local
More informationSoftware Architecture and Engineering: Part II
Software Architecture and Engineering: Part II ETH Zurich, Spring 2016 Prof. http://www.srl.inf.ethz.ch/ Framework SMT solver Alias Analysis Relational Analysis Assertions Second Project Static Analysis
More informationDynamically Detecting and Tolerating IF-Condition Data Races
Dynamically Detecting and Tolerating IF-Condition Data Races Shanxiang Qi (Google), Abdullah Muzahid (University of San Antonio), Wonsun Ahn, Josep Torrellas University of Illinois at Urbana-Champaign
More informationSimplified Semantics and Debugging of Concurrent Programs via Targeted Race Detection
University of California Los Angeles Simplified Semantics and Debugging of Concurrent Programs via Targeted Race Detection A dissertation submitted in partial satisfaction of the requirements for the degree
More informationMAMA: Mostly Automatic Management of Atomicity
MAMA: Mostly Automatic Management of Atomicity Christian DeLozier Joseph Devietti Milo M. K. Martin Computer and Information Science Department, University of Pennsylvania {delozier, devietti, milom}@cis.upenn.edu
More informationCS152: Programming Languages. Lecture 19 Shared-Memory Parallelism and Concurrency. Dan Grossman Spring 2011
CS152: Programming Languages Lecture 19 Shared-Memory Parallelism and Concurrency Dan Grossman Spring 2011 Concurrency and Parallelism PL support for concurrency/parallelism a huge topic Increasingly important
More informationConcurrency and Parallelism. CS152: Programming Languages. Lecture 19 Shared-Memory Parallelism and Concurrency. Concurrency vs. Parallelism.
CS152: Programming Languages Lecture 19 Shared-Memory Parallelism and Concurrency Dan Grossman Spring 2011 Concurrency and Parallelism PL support for concurrency/parallelism a huge topic Increasingly important
More informationThe Common Case Transactional Behavior of Multithreaded Programs
The Common Case Transactional Behavior of Multithreaded Programs JaeWoong Chung Hassan Chafi,, Chi Cao Minh, Austen McDonald, Brian D. Carlstrom, Christos Kozyrakis, Kunle Olukotun Computer Systems Lab
More informationScalable and Precise Dynamic Datarace Detection for Structured Parallelism
Scalable and Precise Dynamic Datarace Detection for Structured Parallelism Raghavan Raman Rice University raghav@rice.edu Jisheng Zhao Rice University jisheng.zhao@rice.edu Vivek Sarkar Rice University
More informationEfficient Data Race Detection for Unified Parallel C
P A R A L L E L C O M P U T I N G L A B O R A T O R Y Efficient Data Race Detection for Unified Parallel C ParLab Winter Retreat 1/14/2011" Costin Iancu, LBL" Nick Jalbert, UC Berkeley" Chang-Seo Park,
More informationAnalysis Tool Project
Tool Overview The tool we chose to analyze was the Java static analysis tool FindBugs (http://findbugs.sourceforge.net/). FindBugs is A framework for writing static analyses Developed at the University
More informationRace Catcher. Automatically Pinpoints Concurrency Defects in Multi-threaded JVM Applications with 0% False Positives.
Race Catcher US and International Patents Issued and Pending. Automatically Pinpoints Concurrency Defects in Multi-threaded JVM Applications with 0% False Positives. Whitepaper Introducing Race Catcher
More informationCooperari A tool for cooperative testing of multithreaded Java programs
Cooperari A tool for cooperative testing of multithreaded Java programs Eduardo R. B. Marques, Francisco Martins, Miguel Simões! LASIGE/Departamento de Informática Faculdade de Ciências da Universidade
More informationProgram logics for relaxed consistency
Program logics for relaxed consistency UPMARC Summer School 2014 Viktor Vafeiadis Max Planck Institute for Software Systems (MPI-SWS) 1st Lecture, 28 July 2014 Outline Part I. Weak memory models 1. Intro
More informationStatic Detection of Atomicity Violations in Object-Oriented Programs
Vol. 3, No. 2, March April 2004 Static Detection of Atomicity Violations in Object-Oriented Programs Christoph von Praun and Thomas Gross Laboratory for Software Technology, ETH Zurich, Switzerland Violations
More informationDynamic Race Detection with LLVM Compiler
Dynamic Race Detection with LLVM Compiler Compile-time instrumentation for ThreadSanitizer Konstantin Serebryany, Alexander Potapenko, Timur Iskhodzhanov, and Dmitriy Vyukov OOO Google, 7 Balchug st.,
More informationAvoiding Consistency Exceptions Under Strong Memory Models
Avoiding Consistency Exceptions Under Strong Memory Models Minjia Zhang Microsoft Research (USA) minjiaz@microsoft.com Swarnendu Biswas University of Texas at Austin (USA) sbiswas@ices.utexas.edu Michael
More informationFAULT DETECTION AND LOCALIZATION TECHNIQUES FOR CONCURRENT PROGRAMS. Jing Xu. Presented to the Faculty of the Graduate School of
FAULT DETECTION AND LOCALIZATION TECHNIQUES FOR CONCURRENT PROGRAMS by Jing Xu Presented to the Faculty of the Graduate School of The University of Texas at Arlington in Partial Fulfillment of the Requirements
More information