Michael Bond Milind Kulkarni Man Cao Minjia Zhang Meisam Fathi Salmi Swarnendu Biswas Aritra Sengupta Jipeng Huang Ohio State Purdue.

Slides:



Advertisements
Similar presentations
Software & Services Group PinPlay: A Framework for Deterministic Replay and Reproducible Analysis of Parallel Programs Harish Patil, Cristiano Pereira,
Advertisements

Michael Bond (Ohio State) Milind Kulkarni (Purdue)
Memory Models (1) Xinyu Feng University of Science and Technology of China.
Gwendolyn Voskuilen, Faraz Ahmad, and T. N. Vijaykumar Electrical & Computer Engineering ISCA 2010.
Exploiting Distributed Version Concurrency in a Transactional Memory Cluster Kaloian Manassiev, Madalin Mihailescu and Cristiana Amza University of Toronto,
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,
OSDI ’10 Research Visions 3 October Epoch parallelism: One execution is not enough Jessica Ouyang, Kaushik Veeraraghavan, Dongyoon Lee, Peter Chen,
CHESS: A Systematic Testing Tool for Concurrent Software CSCI6900 George.
Probabilistic Calling Context Michael D. Bond Kathryn S. McKinley University of Texas at Austin.
Transactional Memory (TM) Evan Jolley EE 6633 December 7, 2012.
An Case for an Interleaving Constrained Shared-Memory Multi- Processor CS6260 Biao xiong, Srikanth Bala.
Submitted by: Omer & Ofer Kiselov Supevised by: Dmitri Perelman Networked Software Systems Lab Department of Electrical Engineering, Technion.
Formalisms and Verification for Transactional Memories Vasu Singh EPFL Switzerland.
Lock vs. Lock-Free memory Fahad Alduraibi, Aws Ahmad, and Eman Elrifaei.
CS590 Z Software Defect Analysis Xiangyu Zhang. CS590F Software Reliability What is Software Defect Analysis  Given a software program, with or without.
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.
1 Organization of Programming Languages-Cheng (Fall 2004) Concurrency u A PROCESS or THREAD:is a potentially-active execution context. Classic von Neumann.
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.
RCDC SLIDES README Font Issues – To ensure that the RCDC logo appears correctly on all computers, it is represented with images in this presentation. This.
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.
Exceptions and Mistakes CSE788 John Eisenlohr. Big Question How can we improve the quality of concurrent software?
Rahul Sharma (Stanford) Michael Bauer (NVIDIA Research) Alex Aiken (Stanford) Verification of Producer-Consumer Synchronization in GPU Programs June 15,
15-740/ Oct. 17, 2012 Stefan Muller.  Problem: Software is buggy!  More specific problem: Want to make sure software doesn’t have bad property.
Programming Paradigms for Concurrency Part 2: Transactional Memories Vasu Singh
Parallelizing Security Checks on Commodity Hardware E.B. Nightingale, D. Peek, P.M. Chen and J. Flinn U Michigan.
Accelerating Precise Race Detection Using Commercially-Available Hardware Transactional Memory Support Serdar Tasiran Koc University, Istanbul, Turkey.
P ath & E dge P rofiling Michael Bond, UT Austin Kathryn McKinley, UT Austin Continuous Presented by: Yingyi Bu.
1 Evaluating the Impact of Thread Escape Analysis on Memory Consistency Optimizations Chi-Leung Wong, Zehra Sura, Xing Fang, Kyungwoo Lee, Samuel P. Midkiff,
DoubleChecker: Efficient Sound and Precise Atomicity Checking Swarnendu Biswas, Jipeng Huang, Aritra Sengupta, and Michael D. Bond The Ohio State University.
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.
Detecting and Eliminating Potential Violation of Sequential Consistency for concurrent C/C++ program Duan Yuelu, Feng Xiaobing, Pen-chung Yew.
Michael Bond Katherine Coons Kathryn McKinley University of Texas at Austin.
Motivation  Parallel programming is difficult  Culprit: Non-determinism Interleaving of parallel threads But required to harness parallelism  Sequential.
Parallelism without Concurrency Charles E. Leiserson MIT.
CoreDet: A Compiler and Runtime System for Deterministic Multithreaded Execution Tom Bergan Owen Anderson, Joe Devietti, Luis Ceze, Dan Grossman To appear.
By: Rob von Behren, Jeremy Condit and Eric Brewer 2003 Presenter: Farnoosh MoshirFatemi Jan
Vertical Profiling : Understanding the Behavior of Object-Oriented Applications Sookmyung Women’s Univ. PsLab Sewon,Moon.
On-Demand Dynamic Software Analysis Joseph L. Greathouse Ph.D. Candidate Advanced Computer Architecture Laboratory University of Michigan November 29,
CSV 889: Concurrent Software Verification Subodh Sharma Indian Institute of Technology Delhi Relaxed Memory Effects and its Verification.
Execution Replay and Debugging. Contents Introduction Parallel program: set of co-operating processes Co-operation using –shared variables –message passing.
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.
Reachability Testing of Concurrent Programs1 Reachability Testing of Concurrent Programs Richard Carver, GMU Yu Lei, UTA.
Tracking Bad Apples: Reporting the Origin of Null & Undefined Value Errors Michael D. Bond UT Austin Nicholas Nethercote National ICT Australia Stephen.
Prescient Memory: Exposing Weak Memory Model Behavior by Looking into the Future MAN CAO JAKE ROEMER ARITRA SENGUPTA MICHAEL D. BOND 1.
Lecture 20: Consistency Models, TM
Lightweight Data Race Detection for Production Runs
On-Demand Dynamic Software Analysis
About Me I'm a software Committer on HDFS
Aritra Sengupta Man Cao Michael D. Bond and Milind Kulkarni
Effective Data-Race Detection for the Kernel
Atomicity CS 2110 – Fall 2017.
Automatic Detection of Extended Data-Race-Free Regions
Man Cao Minjia Zhang Aritra Sengupta Michael D. Bond
Changing thread semantics
Jipeng Huang, Michael D. Bond Ohio State University
Lecture 22: Consistency Models, TM
Background and Motivation
Lecture 25: Multiprocessors
Xinyu Feng University of Science and Technology of China
Lecture 24: Multiprocessors
Rethinking Support for Region Conflict Exceptions
Presentation transcript:

Michael Bond Milind Kulkarni Man Cao Minjia Zhang Meisam Fathi Salmi Swarnendu Biswas Aritra Sengupta Jipeng Huang Ohio State Purdue

Parallel programming is mainstream Shared memory with locks Challenge: performance & correctness

Help express parallelism better Eliminate concurrency errors Diagnose production bugs Deal with nondeterminism Need practical runtime support

Atomicity checking Data race detection Record & replay Transactional memory DRF/SC enforcement Deterministic execution Need practical runtime support

Atomicity checking Data race detection Record & replay Transactional memory DRF/SC enforcement Deterministic execution Track dependencesControl dependences Need practical runtime support o.f = … … = o.f

Atomicity checking Data race detection Record & replay Transactional memory DRF/SC enforcement Deterministic execution Track dependencesControl dependences Need practical runtime support o.f = … … = o.f

Atomicity checking Data race detection Record & replay Transactional memory DRF/SC enforcement Deterministic execution Track dependencesControl dependences Need practical runtime support o.f = … … = o.f Commodity (software-only) approaches slow programs by several times

Atomicity checking Data race detection Record & replay Transactional memory DRF/SC enforcement Deterministic execution Track dependencesControl dependences o.f = … check … = o.f check Need practical runtime support Commodity (software-only) approaches slow programs by several times

Atomicity checking Data race detection Record & replay Transactional memory DRF/SC enforcement Deterministic execution Track dependencesControl dependences o.f = … check … = o.f check Need practical runtime support Any access could race  add synchronization at every access

Octet Framework for runtime support HB edges  all dependences Atomicity of analysis & access Concurrency control mechanism Synchronization  cross-thread dependence  Qualitative performance improvement

Octet Framework for runtime support HB edges  all dependences Atomicity of analysis & access Concurrency control mechanism Synchronization  cross-thread dependence  Qualitative performance improvement Proofs!

Octet tracks ownership Each object’s state Є { WrEx T, RdEx T, RdSh c }

wr o.f T1T2 write check o’s state = WrEx T1 Time

wr o.f T1T2 read check write check o’s state = WrEx T1 Time

wr o.f T1T2 read check write check o’s state = WrEx T1 Time

wr o.f T1T2 safe point write check read check o’s state = WrEx T1 Time

wr o.f T1T2 safe point write check read check o’s state = WrEx T1 Implicit safe point Time

wr o.f T1T2 safe point write check read check o’s state = WrEx T1 Time

wr o.f T1T2 safe point write check read check o’s state = RdEx T2 Time

wr o.f T1T2 rd o.f safe point write check read check o’s state = RdEx T2 Time

wr o.f T1T2 rd o.f safe point read check write check o’s state = RdEx T2 T3T4

wr o.f T1T2 rd o.f T3 safe point T4 read check write check read check o’s state = RdEx T2

wr o.f T1T2 rd o.f T3 safe point T4 read check write check read check o’s state = RdSh c

wr o.f T1T2 rd o.f T3 safe point T4 read check write check read check o’s state = RdSh c

wr o.f T1T2 rd o.f T3 safe point rd o.f T4 read check write check read check o’s state = RdSh c

wr o.f T1T2 rd o.f T3 safe point rd o.f T4 read check write check read check o’s state = RdSh c Sharing detection [von Praun & Gross ’ 01 ] Comparison in our paper Distributed shared memory Shasta [Scales et al. ’ 96 ] Biased locking [Kawachiya et al. ’ 02 ] [Russell & Detlefs ’ 06 ] [Hindman & Grossman ’ 06 ]

Atomicity checking Data race detection Record & replay Transactional memory DRF/SC enforcement Deterministic execution Practical runtime support Track dependencesControl dependences Framework for runtime support Concurrency control mechanism Octet

wr o.f T1T2 rd o.f T3 safe point rd o.f T4 read check write check read check Dependence recorder records happens-before edges

Implementation in Jikes RVM Publicly available Parallel programs DaCapo Benchmarks 2006 & 2009 SPEC JBB 2000 & 2005 Parallel platform 32 cores (AMD Opteron 6272 )

Octet helps enable practical runtime support for reliable, scalable concurrency Framework for runtime support HB edges  all dependences Atomicity of analysis & access Concurrency control mechanism Synchronization  cross-thread dependence  Qualitative performance improvement