Michael Bond (Ohio State) Milind Kulkarni (Purdue)

Slides:



Advertisements
Similar presentations
PEREGRINE: Efficient Deterministic Multithreading through Schedule Relaxation Heming Cui, Jingyue Wu, John Gallagher, Huayang Guo, Junfeng Yang Software.
Advertisements

Privatization Techniques for Software Transactional Memory Michael F. Spear, Virendra J. Marathe, Luke Dalessandro, and Michael L. Scott University of.
Software & Services Group PinPlay: A Framework for Deterministic Replay and Reproducible Analysis of Parallel Programs Harish Patil, Cristiano Pereira,
Effective Static Deadlock Detection
Michael Bond Milind Kulkarni Man Cao Minjia Zhang Meisam Fathi Salmi Swarnendu Biswas Aritra Sengupta Jipeng Huang Ohio State Purdue.
UW-Madison Computer Sciences Multifacet Group© 2011 Karma: Scalable Deterministic Record-Replay Arkaprava Basu Jayaram Bobba Mark D. Hill Work done at.
1 Write Barrier Elision for Concurrent Garbage Collectors Martin T. Vechev Cambridge University David F. Bacon IBM T.J.Watson Research Center.
Gwendolyn Voskuilen, Faraz Ahmad, and T. N. Vijaykumar Electrical & Computer Engineering ISCA 2010.
Efficient, Context-Sensitive Dynamic Analysis via Calling Context Uptrees Jipeng Huang, Michael D. Bond Ohio State University.
Goldilocks: Efficiently Computing the Happens-Before Relation Using Locksets Tayfun Elmas 1, Shaz Qadeer 2, Serdar Tasiran 1 1 Koç University, İstanbul,
A Randomized Dynamic Program Analysis for Detecting Real Deadlocks Koushik Sen CS 265.
CS530 Operating System Nesting Paging in VM Replay for MPs Jaehyuk Huh Computer Science, KAIST.
Recording Inter-Thread Data Dependencies for Deterministic Replay Tarun GoyalKevin WaughArvind Gopalakrishnan.
CHESS: A Systematic Testing Tool for Concurrent Software CSCI6900 George.
Lock vs. Lock-Free memory Fahad Alduraibi, Aws Ahmad, and Eman Elrifaei.
Deterministic Logging/Replaying of Applications. Motivation Run-time framework goals –Collect a complete trace of a program’s user-mode execution –Keep.
Dongyoon Lee, Benjamin Wester, Kaushik Veeraraghavan, Satish Narayanasamy, Peter M. Chen, and Jason Flinn University of Michigan, Ann Arbor Respec: Efficient.
DoublePlay: Parallelizing Sequential Logging and Replay Kaushik Veeraraghavan Dongyoon Lee, Benjamin Wester, Jessica Ouyang, Peter M. Chen, Jason Flinn,
DTHREADS: Efficient Deterministic Multithreading
Why The Grass May Not Be Greener On The Other Side: A Comparison of Locking vs. Transactional Memory Written by: Paul E. McKenney Jonathan Walpole Maged.
A Transaction-Friendly Dynamic Memory Manager for Embedded Multicore Systems Maurice Herlihy Joint with Thomas Carle, Dimitra Papagiannopoulou Iris Bahar,
Tolerating Memory Leaks Michael D. Bond Kathryn S. McKinley.
0 Deterministic Replay for Real- time Software Systems Alice Lee Safety, Reliability & Quality Assurance Office JSC, NASA Yann-Hang.
Concurrency Recitation – 2/24 Nisarg Raval Slides by Prof. Landon Cox.
Deterministic Replay of Java Multithreaded Applications Jong-Deok Choi and Harini Srinivasan slides made by Qing Zhang.
What is the Cost of Determinism?
1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering.
15-740/ Oct. 17, 2012 Stefan Muller.  Problem: Software is buggy!  More specific problem: Want to make sure software doesn’t have bad property.
Accelerating Precise Race Detection Using Commercially-Available Hardware Transactional Memory Support Serdar Tasiran Koc University, Istanbul, Turkey.
- 1 - Dongyoon Lee, Peter Chen, Jason Flinn, Satish Narayanasamy University of Michigan, Ann Arbor Chimera: Hybrid Program Analysis for Determinism * Chimera.
- 1 - Dongyoon Lee †, Mahmoud Said*, Satish Narayanasamy †, Zijiang James Yang*, and Cristiano L. Pereira ‡ University of Michigan, Ann Arbor † Western.
Eraser: A Dynamic Data Race Detector for Multithreaded Programs STEFAN SAVAGE, MICHAEL BURROWS, GREG NELSON, PATRICK SOBALVARRO, and THOMAS ANDERSON Ethan.
Buffered dynamic run-time profiling of arbitrary data for Virtual Machines which employ interpreter and Just-In-Time (JIT) compiler Compiler workshop ’08.
DoubleChecker: Efficient Sound and Precise Atomicity Checking Swarnendu Biswas, Jipeng Huang, Aritra Sengupta, and Michael D. Bond The Ohio State University.
Breadcrumbs: Efficient Context Sensitivity for Dynamic Bug Detection Analyses Michael D. Bond University of Texas at Austin Graham Z. Baker Tufts / MIT.
COMP 111 Threads and concurrency Sept 28, Tufts University Computer Science2 Who is this guy? I am not Prof. Couch Obvious? Sam Guyer New assistant.
Rerun: Exploiting Episodes for Lightweight Memory Race Recording Derek R. Hower and Mark D. Hill Computer systems complex – more so with multicore What.
Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Hybrid Static-Dynamic Analysis for Statically.
Efficient Deterministic Replay of Multithreaded Executions in a Managed Language Virtual Machine Michael Bond Milind Kulkarni Man Cao Meisam Fathi Salmi.
Low-Overhead Software Transactional Memory with Progress Guarantees and Strong Semantics Minjia Zhang, 1 Jipeng Huang, Man Cao, Michael D. Bond.
Cooperative Concurrency Bug Isolation Guoliang Jin, Aditya Thakur, Ben Liblit, Shan Lu University of Wisconsin–Madison Instrumentation and Sampling Strategies.
On-Demand Dynamic Software Analysis Joseph L. Greathouse Ph.D. Candidate Advanced Computer Architecture Laboratory University of Michigan December 12,
Drinking from Both Glasses: Adaptively Combining Pessimistic and Optimistic Synchronization for Efficient Parallel Runtime Support Man Cao Minjia Zhang.
Michael Bond Katherine Coons Kathryn McKinley University of Texas at Austin.
Polytechnic University of Tirana Faculty of Information Technology Computer Engineering Department A MULTITHREADED SEARCH ENGINE AND TESTING OF MULTITHREADED.
Dongyoon Lee, Benjamin Wester, Kaushik Veeraraghavan, Satish Narayanasamy, Peter M. Chen, and Jason Flinn University of Michigan, Ann Arbor Respec: Efficient.
CoreDet: A Compiler and Runtime System for Deterministic Multithreaded Execution Tom Bergan Owen Anderson, Joe Devietti, Luis Ceze, Dan Grossman To appear.
Aditya Thakur Rathijit Sen Ben Liblit Shan Lu University of Wisconsin–Madison Workshop on Dynamic Analysis 2009 Cooperative Crug Isolation.
31 Oktober 2000 SEESCOASEESCOA STWW - Programma Work Package 5 – Debugging Task Generic Debug Interface K. De Bosschere e.a.
A Binary Agent Technology for COTS Software Integrity Anant Agarwal Richard Schooler InCert Software.
Execution Replay and Debugging. Contents Introduction Parallel program: set of co-operating processes Co-operation using –shared variables –message passing.
October 24, 2003 SEESCOASEESCOA STWW - Programma Debugging Components Koen De Bosschere RUG-ELIS.
Aritra Sengupta, Man Cao, Michael D. Bond and Milind Kulkarni PPPJ 2015, Melbourne, Florida, USA Toward Efficient Strong Memory Model Support for the Java.
Demand-Driven Software Race Detection using Hardware Performance Counters Joseph L. Greathouse †, Zhiqiang Ma ‡, Matthew I. Frank ‡ Ramesh Peri ‡, Todd.
Flashback : A Lightweight Extension for Rollback and Deterministic Replay for Software Debugging Sudarshan M. Srinivasan, Srikanth Kandula, Christopher.
CHESS Finding and Reproducing Heisenbugs in Concurrent Programs
E Virtual Machines Lecture 6 Topics in Virtual Machine Management Scott Devine VMware, Inc.
Using Escape Analysis in Dynamic Data Race Detection Emma Harrington `15 Williams College
Kendo: Efficient Deterministic Multithreading in Software M. Olszewski, J. Ansel, S. Amarasinghe MIT to be presented in ASPLOS 2009 slides by Evangelos.
6 July 2015 Charles Reiss
Mihai Burcea, J. Gregory Steffan, Cristiana Amza
Rerun: Exploiting Episodes for Lightweight Memory Race Recording
Faults and fault-tolerance
PHyTM: Persistent Hybrid Transactional Memory
Effective Data-Race Detection for the Kernel
Man Cao Minjia Zhang Aritra Sengupta Michael D. Bond
Faults and fault-tolerance
Parallelism and Concurrency
Design and Implementation Issues for Atomicity
CS703 – Advanced Operating Systems
Presentation transcript:

Michael Bond (Ohio State) Milind Kulkarni (Purdue)

Concurrent software is nondeterministic Record & replay: more important & harder

Offline replay Reproduce production bugs Online replay Replication-based fault tolerance Offloading of security events

Nondeterministic thread interleavings: Synchronization Data races

Detects races  high overhead [LeBlanc & Mellor-Crummey ’87] Custom hardware support [FDR] [Rerun] [Strata] [DeLorean] [MRR] Doesn’t support offline or online replay [Respec] [ODR] [PRES] [Weeratunge et al. ’10] DoublePlay: extra cores; doesn’t scale well

Detects races  high overhead [LeBlanc & Mellor-Crummey ’87] Custom hardware support [FDR] [Rerun] [Strata] [DeLorean] [MRR] Doesn’t support offline or online replay [Respec] [ODR] [PRES] [Weeratunge et al. ’10] DoublePlay: extra cores; doesn’t scale well

Detects races  high overhead [LeBlanc & Mellor-Crummey ’87] Custom hardware support [FDR] [Rerun] [Strata] [DeLorean] [MRR] Doesn’t support offline or online replay [Respec] [ODR] [PRES] [Weeratunge et al. ’10] DoublePlay: extra cores; doesn’t scale well Don’t track conflicting dependences

Every access might conflict Synchronization  conflicting access T1 if o.lastAccess != T1 … write o.f T2 if o.lastWrite != T2 … read o.f

Every access might conflict: Need instrumentation at every access Synchronization  conflicting access T1 if o.lastAccess != T1 … o.lastAccess = T1 write o.f T2 if o.lastAccess != T2 … o.lastAccess = T2 read o.f

Every access might conflict: Need synchronization at every access Synchronization  conflicting access T1 if o.lastAccess != T1 … o.lastAccess = T1 write o.f T2 if o.lastAccess != T2 … o.lastAccess = T2 read o.f

Every access might conflict: Need synchronization at every access at conflicting accesses only T1 if o.lastAccess != T1 … o.lastAccess = T1 write o.f T2 if o.lastAccess != T2 … o.lastAccess = T2 read o.f

Every access might conflict: Need synchronization at every access at conflicting accesses only T2 if o.lastAccess != T2 … o.lastAccess = T2 read o.f

Every access might conflict: Need synchronization at every access at conflicting accesses only T1 … safe point: … T2 if o.lastAccess != T2 … o.lastAccess = T2 read o.f

Every access might conflict: Need synchronization at every access at conflicting accesses only T1 if o.state != WrEx T1 … write o.f T2 if o.state in  { WrEx T2, RdEx T2, RdSh } … read o.f

Every access might conflict: Need synchronization at every access at conflicting accesses only Related to locality & ownership tracking [Shasta] [Biased locking] [von Praun & Gross ’01] [CoreDet?] [IBM’s STM?]

… safe point if o.state = … … read o.f Record dynamic program location Happens-before

Increment counter Wait for counter … safe point if o.state = … … read o.f Happens-before

sync (o) { write o.f } sync (o) { read o.f } Happens-before

sync (o) { write o.f } sync (o) { read o.f } Happens-before

Non-conflicting accesses  very fast Static analysis Conflicting accesses  not too slow Pessimistic concurrency?

Controlling other sources of nondeterminism: I/O Low-level VM concurrency Timer-based sampling Record vs. replay

Controlling other sources of nondeterminism: I/O Low-level VM concurrency Timer-based sampling Record vs. replay Different heap layouts  different hash codes

Controlling other sources of nondeterminism: I/O Low-level VM concurrency Timer-based sampling Record vs. replay Different heap layouts  different hash codes Deterministic hash codes?

Software record & replay by tracking conflicting dependences Optimistic concurrency control Performance & replayability challenges Apply concurrency control mechanism to other problems?