Concurrent Predicates: A Debugging Technique for Every Parallel Programmer PACT 13 Justin Gottschlich Gilles Pokam Cristiano Pereira Youfeng Wu Intel Corporation.

Slides:



Advertisements
Similar presentations
TWO STEP EQUATIONS 1. SOLVE FOR X 2. DO THE ADDITION STEP FIRST
Advertisements

1 Verification by Model Checking. 2 Part 1 : Motivation.
Analyzing Parallel Performance Intel Software College Introduction to Parallel Programming – Part 6.
Shared-Memory Model and Threads Intel Software College Introduction to Parallel Programming – Part 2.
© 2013 IBM Corporation Implement high-level parallel API in JDK Richard Ning – Enterprise Developer 1 st June 2013.
Linear Equation in One Variable
Bellwork If you roll a die, what is the probability that you roll a 2 or an odd number? P(2 or odd) 2. Is this an example of mutually exclusive, overlapping,
§ 1.10 Properties of the Real Number System. Angel, Elementary Algebra, 7ed 2 Commutative Property Commutative Property of Addition If a and b represent.
Slide 1 Insert your own content. Slide 2 Insert your own content.
Chapter 6 Writing a Program
Bounded Model Checking of Concurrent Data Types on Relaxed Memory Models: A Case Study Sebastian Burckhardt Rajeev Alur Milo M. K. Martin Department of.
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 7 System Design Techniques.
1 Copyright © 2010, Elsevier Inc. All rights Reserved Fig 2.1 Chapter 2.
By D. Fisher Geometric Transformations. Reflection, Rotation, or Translation 1.
By Rick Clements Software Testing 101 By Rick Clements
Multiplying Powers Dividing Powers Zero ExponentsNegative.
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination.
Combining Like Terms. Only combine terms that are exactly the same!! Whats the same mean? –If numbers have a variable, then you can combine only ones.
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Multiplying monomials & binomials You will have 20 seconds to answer the following 15 questions. There will be a chime signaling when the questions change.
Exponents You will have 20 seconds to complete each of the following 16 questions. A chime will sound as each slide changes. Read the instructions at.
0 - 0.
ALGEBRAIC EXPRESSIONS
DIVIDING INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
MULTIPLYING MONOMIALS TIMES POLYNOMIALS (DISTRIBUTIVE PROPERTY)
ADDING INTEGERS 1. POS. + POS. = POS. 2. NEG. + NEG. = NEG. 3. POS. + NEG. OR NEG. + POS. SUBTRACT TAKE SIGN OF BIGGER ABSOLUTE VALUE.
MULTIPLICATION EQUATIONS 1. SOLVE FOR X 3. WHAT EVER YOU DO TO ONE SIDE YOU HAVE TO DO TO THE OTHER 2. DIVIDE BY THE NUMBER IN FRONT OF THE VARIABLE.
SUBTRACTING INTEGERS 1. CHANGE THE SUBTRACTION SIGN TO ADDITION
MULT. INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
Addition Facts
Year 6 mental test 10 second questions Numbers and number system Numbers and the number system, fractions, decimals, proportion & probability.
1 Processes and Threads Creation and Termination States Usage Implementations.
CS4026 Formal Models of Computation Running Haskell Programs – power.
PEREGRINE: Efficient Deterministic Multithreading through Schedule Relaxation Heming Cui, Jingyue Wu, John Gallagher, Huayang Guo, Junfeng Yang Software.
Welcome 2-Day Conference – Project Management in Construction Sector 1.
Triage: Diagnosing Production Run Failures at the Users Site Joseph Tucek, Shan Lu, Chengdu Huang, Spiros Xanthos, and Yuanyuan Zhou Department of Computer.
BT Wholesale October Creating your own telephone network WHOLESALE CALLS LINE ASSOCIATED.
# 1 Solve. # 2 Solve. # 3 Solve..
Debugging operating systems with time-traveling virtual machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
Complex Numbers Properties & Powers of i
4.6 Perform Operations with Complex Numbers
Complex Numbers 3.3 Perform arithmetic operations on complex numbers
© S Haughton more than 3?
5.9 + = 10 a)3.6 b)4.1 c)5.3 Question 1: Good Answer!! Well Done!! = 10 Question 1:
Twenty Questions Subject: Twenty Questions
Squares and Square Root WALK. Solve each problem REVIEW:
Created by Susan Neal $100 Fractions Addition Fractions Subtraction Fractions Multiplication Fractions Division General $200 $300 $400 $500 $100 $200.
PROJECT TEAMS A 1 & 2 B 6 & 15 C 4 & 5 D 3 & 7 E 8 & 14 F 12 & 13 G 9 & 16 H 10 & 11.
Lets play bingo!!. Calculate: MEAN Calculate: MEDIAN
Past Tense Probe. Past Tense Probe Past Tense Probe – Practice 1.
Properties of Exponents
Chapter 5 Test Review Sections 5-1 through 5-4.
Addition 1’s to 20.
25 seconds left…...
Test B, 100 Subtraction Facts
Week 1.
§ 7.2 Rational Exponents.
We will resume in: 25 Minutes.
Use the substitution method
Bottoms Up Factoring. Start with the X-box 3-9 Product Sum
A SMALL TRUTH TO MAKE LIFE 100%
FIND THE AREA ( ROUND TO THE NEAREST TENTHS) 2.7 in 15 in in.
The Pythagorean Theorem
Solve an equation by multiplying by a reciprocal
EXAMPLE 3 Use synthetic division
Software & Services Group PinPlay: A Framework for Deterministic Replay and Reproducible Analysis of Parallel Programs Harish Patil, Cristiano Pereira,
Dr. Muhammed Al-Mulhem 1ICS ICS 535 Design and Implementation of Programming Languages Part 1 OpenMP -Example ICS 535 Design and Implementation.
Debugging Threaded Applications By Andrew Binstock CMPS Parallel.
Presentation transcript:

Concurrent Predicates: A Debugging Technique for Every Parallel Programmer PACT 13 Justin Gottschlich Gilles Pokam Cristiano Pereira Youfeng Wu Intel Corporation 1

The Problem Reproducing known multithreaded bugs is challenging Why is it important? – Fixing known bugs is general approach for real- world bug fixing Works well for sequential code, not parallel 2

A Simple Sequential Bug Example y = calculate(); a = x / y; if (y == 0) y = 1; if (y == 0) crash y = calculate(); if (y == 0) y = 1; a = x / y; y != 0, no crash 3

A Not-So Simple Parallel Bug Example Parallel Bug Reproduction Needs 1.Buggy program state 2.Buggy program schedule Parallel Bug Reproduction Needs 1.Buggy program state 2.Buggy program schedule 4

The CP Solution 100mil loops, calc(), occurs 1 out of 20 executions. 100mil loops, calc(), occurs 20 out of 20 executions. 5

What is CP? Two variants – Concurrent Predicates (CP) – control structure – CP with Expressions (CPEs) – happens-before ordering extrapolated 6

The CPE Solution 7

The Real Problem But what about reproducing a known bug with an unknown root cause? – Most real-world bugs come in this form 8

Recipes and Experimental Data 9

A Bit About Bugs Bugs can be thought in terms of... – A root cause – An observable effect CPs can be thought of in terms of... – A root cause CP – An effect CP The root cause CP is placed after bug root cause, which is usually unknown y = calculate(); The effect CP is placed just before bug effect, which is usually known a = x / y; 10

Recipe: Data Race CP can automatically find data races – Early implementation in PIN – Verified results found by Thread Checker Identified true positives 11

Recipe: Atomicity Violation Same structure as divide by zero example 12

Recipe: Deadlock Expression operators in paper 13

Experimental Results 5 handcrafted bugs 5 RADBench bugs 3 unresolved TBoost.STM bugs (now fixed) Overhead generally 10%-100% (1.1x – 2x) 14

Conclusions and Future Directions CP and CPE: – Can improve known bug reproduction – Can identify unknown root causes of known bugs using recipes (weve used them) Whats next? – Simplify model; direct debugger integration – Automated CPE injection for certain types of bugs – Usage experience data from novice programmers 15

Concurrent Predicates: A Debugging Technique for Every Parallel Programmer PACT 13 Justin Gottschlich Gilles Pokam Cristiano Pereira Youfeng Wu Intel Corporation Questions? 16