Statistical Debugging for Real-World Performance Problems. Linhai Song Advisor: Prof. Shan Lu

Size: px
Start display at page:

Download "Statistical Debugging for Real-World Performance Problems. Linhai Song Advisor: Prof. Shan Lu"

Transcription

1 Statistical Debugging for Real-World Performance Problems Linhai Song Advisor: Prof. Shan Lu 1

2 Software Efficiency is Critical No one wants slow and inefficient software Frustrate end users Cause economic loss Software efficiency is increasingly important Hardware is not getting faster (per-core) Software is getting more complex Energy saving is getting more urgent Still Not Finished?

3 Performance Bugs Implementation mistakes causing inefficiency An example rows=0 causing no cache allocated MySQL Bug DB void ha_partition::start_bulk_insert(int rows) {. - if (!rows) - DBUG_VOID_RETURN; - rows= rows/m_tot_parts + 1; + rows= rows? rows/m_tot_parts + 1 : 0;. // fast path using caches } MySQL Bug X Slower

4 How to Diagnose Performance Bugs Difficult to avoid Lack performance documentation for APIs Workloads are quickly changing Diagnosis tools are needed The state of the art is preliminary Profilers void ha_partition::start_bulk_insert(int rows) {. - if (!rows) Not in profiling results - DBUG_VOID_RETURN; - rows= rows/m_tot_parts + 1; + rows= rows? rows/m_tot_parts + 1 : 0;. // fast path using caches } MySQL Bug 26527

5 How to Diagnose Functional Bugs The state of the art is mature Has been studied for decades Many successful techniques have been proposed Statistical debugging Input: Program: Symptom: Bad Good int i = 0; int j = 10; int k = fopen( ); if (p==null) printf( %s\n, p->str); failure Predicates B: p==null R: k > 0 S: i<j Predicates B: p!=null R: k > 0 S: i<j Statistical Model Rank Predicates Score 1 B:p==NULL

6 What Can We Learn? How about statistical debugging Input: Program: Symptom: Q1: How to identify failure runs? Q2: How to obtain inputs? Q3: How to design predicates? Q2? Bad int i = 0; int j = 10; int k = fopen( ); if (p==null) printf( %s\n, p->str); failure Good Q1? Predicates B: p==null R: k > 0 S: i<j Predicates B: p!=null R: k > 0 S: i<j Q3? Statistical Model Rank Predicates Score 1 B:p==NULL

7 Contributions Diagnosis process for performance bugs Performance problems are noticed by comparison Inputs are provided during reporting Statistical in-house performance diagnosis 3 popular predicates 2 widely used statistical models Statistical on-line performance diagnosis Same diagnosis capability with <10% overhead Not sacrifice diagnosis latency

8 Outline Overview Diagnosis process study In-house diagnosis study On-line diagnosis study Conclusion

9 Outline Overview Diagnosis process study In-house diagnosis study On-line diagnosis study Conclusion

10 Outline Overview Diagnosis process study In-house diagnosis study On-line diagnosis study Conclusion

11 Methodology Application and Bug Source App. Apache Software Type Command-line Utility + Server + Library Language C/Java MLOC 0.45 Bug DB History 13 y Tags N/A # Bugs 25 # Bug User Perceived 16 Chrome GUI Application C/C y N/A 10 5 GCC Compiler C/C y Compiletime-hog 11 9 Mozilla GUI Application C++/JS y perf MySQL Server Software C/C++/C# y S Total:

12 Q1: How to identify failure runs? How about statistical debugging Q1: How to identify failure runs? Input: Program: Bad Good int i = 0; int j = 10; int k = fopen( ); if (p==null) printf( %s\n, p->str); Symptom: failure Q1? Predicates B: p==null R: k > 0 S: i<j Predicates B: p!=null R: k > 0 S: i<j Statistical Model Rank Predicates Score 1 B:p==NULL

13 How Perf. Bugs are Observed Dominating MySQL within one code base cross multiple code bases Not using comparison Mozilla GCC Chrome Apache

14 How Perf. Bugs are Observed the same input with different configuration inputs with different sizes inputs with slightly different functionality MySQL within one code base cross multiple code bases Not using comparison Mozilla GCC Chrome Apache

15 How Perf. Bugs are Observed same applications different versions different applications MySQL within one code base cross multiple code bases Not using comparison Mozilla GCC Chrome Apache

16 How Perf. Bugs are Observed MySQL within one code base cross multiple code bases Not using comparison Mozilla GCC Chrome Apache

17 Q2: How to obtain inputs? How about statistical debugging Q1: How to identify failure runs? Q2: How to obtain inputs? Input: Program: Symptom: Q2? Bad int i = 0; int j = 10; int k = fopen( ); if (p==null) printf( %s\n, p->str); failure Good Predicates B: p==null R: k > 0 S: i<j Predicates B: p!=null R: k > 0 S: i<j Statistical Model Rank Predicates Score 1 B:p==NULL

18 Bad Inputs Provided in Bug Reports Cover all bugs /? n/? MySQL Mozilla GCC Chrome Apache

19 Good Inputs Provided in Bug Reports Good inputs provided ?/0?/1?/n MySQL Mozilla GCC Chrome Apache

20 Implications Performance bugs are observed differently Noticed through comparison Easy to tell successful runs from failure runs Case 1: through comparison Case 2: symptom is dramatic Statistical debugging is a natural fit

21 Outline Overview Diagnosis process study In-house diagnosis study On-line diagnosis study Conclusion

22 Outline Overview Diagnosis process study In-house diagnosis study On-line diagnosis study Conclusion

23 Design In-house diagnosis Predicate design Branch if (p) else. Predicate

24 Design In-house diagnosis Predicate design Branch Return if (p) else. n=fprintf( ); Predicate

25 Design In-house diagnosis Predicate design Branch Return Scalar-pair if (p) else. n=fprintf( ); int i, j, k; i = ; Predicate

26 Design In-house diagnosis Predicate design Branch Return Scalar-pair if (p) else. Statistical model design n=fprintf( ); int i, j, k; i = ; Predicate Model

27 Design In-house diagnosis Predicate design Branch Return Scalar-pair Statistical model design Basic model if (p) else. n=fprintf( ); int i, j, k; i = ; Predicate Model

28 Design In-house diagnosis Predicate design Branch Return Scalar-pair Statistical model design Basic model Delta-LDA if (p) else. n=fprintf( ); int i, j, k; i = ; Predicate Model

29 Experimental Methodology Benchmark selection 8 C bugs, 8 C++ bugs and 4 Java bugs Input design and other setting 10 failure and 10 successful runs Techniques under comparison CBI for C programs Pin for C++ programs Compared with profiling results from OProfile

30 Experimental Results Candidate Predicates Basic Model ΔLDA Profiler BugID Branch Return S-pair Branch Return S-pair Branch Mozilla / 1 - / - - Mozilla / 1 - / - - Mozilla Mozilla MySQL / - - / 1 1 MySQL / 1 - / - - MySQL / - - / 1 1 MySQL / 1 - / - - MySQL / 1 - / - - MySQL / 1 - / - - Apache Apache

31 Experimental Results Candidate Predicates Basic Model ΔLDA Profiler BugID Branch Return S-pair Branch Return S-pair Branch Mozilla / 1 - / - - Mozilla / 1 - / - - Mozilla Mozilla MySQL / - - / 1 1 MySQL / 1 - / - - MySQL / - - / 1 1 MySQL / 1 - / - - MySQL / 1 - / - - MySQL / 1 - / - - Apache Apache

32 Experimental Results Candidate Predicates Basic Model ΔLDA Profiler BugID Branch Return S-pair Branch Return S-pair Branch Mozilla / 1 - / - - Mozilla / 1 - / - - Mozilla Mozilla MySQL / - - / 1 1 MySQL / 1 - / - - MySQL / - - / 1 1 MySQL / 1 - / - - MySQL / 1 - / - - MySQL / 1 - / - - Apache Apache

33 Experimental Results Candidate Predicates Basic Model ΔLDA Profiler BugID Branch Return S-pair Branch Return S-pair Branch Mozilla / 1 - / - - Mozilla / 1 - / - - Mozilla Mozilla MySQL / - - / 1 1 MySQL / 1 - / - - MySQL / - - / 1 1 MySQL / 1 - / - - MySQL / 1 - / - - MySQL / 1 - / - - Apache Apache

34 Outline Overview Diagnosis process study In-house diagnosis study On-line diagnosis study Conclusion

35 Outline Overview Diagnosis process study In-house diagnosis study On-line diagnosis study Conclusion

36 Experimental Methodology Challenges in on-line diagnosis Diagnosis capability Low overhead Benchmarks and inputs Tool implementation CBI in sampling mode for return predicates LBR for branch predicates Rough sampling rate is 1/100

37 Experimental Results BugID Diagnosis Capability Overhead Requested Failure Runs Mozilla % 1000 Mozilla % 1000 Mozilla % 10 Mozilla % 1000 MySQL % 10 MySQL % 1000 MySQL % 10 MySQL % 1000 MySQL % 1000 MySQL % 1000 Apache % 1000 Apache % 10

38 Experimental Results BugID Diagnosis Capability Overhead Requested Failure Runs Mozilla % 1000 Mozilla % 1000 Mozilla % 10 Mozilla % 1000 MySQL % 10 MySQL % 1000 MySQL % 10 MySQL % 1000 MySQL % 1000 MySQL % 1000 Apache % 1000 Apache % 10

39 Conclusion and Future Works Study diagnosis process for perf. bugs Noticed through comparison Good and bad inputs are provided Study statistical debugging on perf. bugs Branch predicates + two statistical models Future works Analyze inefficient loops Provide detailed fix strategies

40 Thanks a lot! 40

Statistical Debugging for Real-World Performance Problems

Statistical Debugging for Real-World Performance Problems Statistical Debugging for Real-World Performance Problems Linhai Song 1 and Shan Lu 2 1 University of Wisconsin-Madison 2 University of Chicago What are Performance Problems? Definition of Performance

More information

Diagnosing Production-Run Concurrency-Bug Failures. Shan Lu University of Wisconsin, Madison

Diagnosing Production-Run Concurrency-Bug Failures. Shan Lu University of Wisconsin, Madison Diagnosing Production-Run Concurrency-Bug Failures Shan Lu University of Wisconsin, Madison 1 Outline Myself and my group Production-run failure diagnosis What is this problem What are our solutions CCI

More information

Leveraging the Short-Term Memory of Hardware to Diagnose Production-Run Software Failures. Joy Arulraj, Guoliang Jin and Shan Lu

Leveraging the Short-Term Memory of Hardware to Diagnose Production-Run Software Failures. Joy Arulraj, Guoliang Jin and Shan Lu Leveraging the Short-Term Memory of Hardware to Diagnose Production-Run Software Failures Joy Arulraj, Guoliang Jin and Shan Lu Production-Run Failure Diagnosis Goal Figure out root cause of failure on

More information

Production-Run Software Failure Diagnosis via Hardware Performance Counters. Joy Arulraj, Po-Chun Chang, Guoliang Jin and Shan Lu

Production-Run Software Failure Diagnosis via Hardware Performance Counters. Joy Arulraj, Po-Chun Chang, Guoliang Jin and Shan Lu Production-Run Software Failure Diagnosis via Hardware Performance Counters Joy Arulraj, Po-Chun Chang, Guoliang Jin and Shan Lu Motivation Software inevitably fails on production machines These failures

More information

High Performance Computing and Programming, Lecture 3

High Performance Computing and Programming, Lecture 3 High Performance Computing and Programming, Lecture 3 Memory usage and some other things Ali Dorostkar Division of Scientific Computing, Department of Information Technology, Uppsala University, Sweden

More information

Automated Adaptive Bug Isolation using Dyninst. Piramanayagam Arumuga Nainar, Prof. Ben Liblit University of Wisconsin-Madison

Automated Adaptive Bug Isolation using Dyninst. Piramanayagam Arumuga Nainar, Prof. Ben Liblit University of Wisconsin-Madison Automated Adaptive Bug Isolation using Dyninst Piramanayagam Arumuga Nainar, Prof. Ben Liblit University of Wisconsin-Madison Cooperative Bug Isolation (CBI) ++branch_17[p!= 0]; if (p) else Predicates

More information

Understanding, Detecting, and Diagnosing Real-World Performance Bugs

Understanding, Detecting, and Diagnosing Real-World Performance Bugs Understanding, Detecting, and Diagnosing Real-World Performance Bugs by Linhai Song A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy (Computer

More information

PerfGuard: Binary-Centric Application Performance Monitoring in Production Environments

PerfGuard: Binary-Centric Application Performance Monitoring in Production Environments PerfGuard: Binary-Centric Application Performance Monitoring in Production Environments Chung Hwan Kim, Junghwan Rhee *, Kyu Hyung Lee +, Xiangyu Zhang, Dongyan Xu * + Performance Problems Performance

More information

Understanding and Detecting Real-World Performance Bugs

Understanding and Detecting Real-World Performance Bugs Understanding and Detecting Real-World Performance Bugs Guoliang Jin Linhai Song Xiaoming Shi Joel Scherpelz Shan Lu University of Wisconsin Madison {aliang, songlh, xiaoming, shanlu}@cs.wisc.edu joel.scherpelz@gmail.com

More information

Chip-Multithreading Systems Need A New Operating Systems Scheduler

Chip-Multithreading Systems Need A New Operating Systems Scheduler Chip-Multithreading Systems Need A New Operating Systems Scheduler Alexandra Fedorova Christopher Small Daniel Nussbaum Margo Seltzer Harvard University, Sun Microsystems Sun Microsystems Sun Microsystems

More information

Profile-Guided Program Simplification for Effective Testing and Analysis

Profile-Guided Program Simplification for Effective Testing and Analysis Profile-Guided Program Simplification for Effective Testing and Analysis Lingxiao Jiang Zhendong Su Program Execution Profiles A profile is a set of information about an execution, either succeeded or

More information

Production-Run Software Failure Diagnosis via Hardware Performance Counters

Production-Run Software Failure Diagnosis via Hardware Performance Counters Production-Run Software Failure Diagnosis via Hardware Performance Counters Joy Arulraj Po-Chun Chang Guoliang Jin Shan Lu University of Wisconsin Madison {joy,pchang9,aliang,shanlu}@cs.wisc.edu Abstract

More information

Transaction Memory for Existing Programs Michael M. Swift Haris Volos, Andres Tack, Shan Lu, Adam Welc * University of Wisconsin-Madison, *Intel

Transaction Memory for Existing Programs Michael M. Swift Haris Volos, Andres Tack, Shan Lu, Adam Welc * University of Wisconsin-Madison, *Intel Transaction Memory for Existing Programs Michael M. Swift Haris Volos, Andres Tack, Shan Lu, Adam Welc * University of Wisconsin-Madison, *Intel Where do TM programs ome from?! Parallel benchmarks replacing

More information

M2 Instruction Set Architecture

M2 Instruction Set Architecture M2 Instruction Set Architecture Module Outline Addressing modes. Instruction classes. MIPS-I ISA. Translating and starting a program. High level languages, Assembly languages and object code. Subroutine

More information

Automated Documentation Inference to Explain Failed Tests

Automated Documentation Inference to Explain Failed Tests Automated Documentation Inference to Explain Failed Tests Sai Zhang University of Washington Joint work with: Cheng Zhang, Michael D. Ernst A failed test reveals a potential bug Before bug-fixing, programmers

More information

Optimizing Your Android Applications

Optimizing Your Android Applications Optimizing Your Android Applications Alexander Nelson November 27th, 2017 University of Arkansas - Department of Computer Science and Computer Engineering The Problem Reminder Immediacy and responsiveness

More information

CFix. Automated Concurrency-Bug Fixing. Guoliang Jin, Wei Zhang, Dongdong Deng, Ben Liblit, and Shan Lu. University of Wisconsin Madison

CFix. Automated Concurrency-Bug Fixing. Guoliang Jin, Wei Zhang, Dongdong Deng, Ben Liblit, and Shan Lu. University of Wisconsin Madison CFix Automated Concurrency-Bug Fixing Guoliang Jin, Wei Zhang, Dongdong Deng, Ben Liblit, and Shan Lu. University of Wisconsin Madison 1 Bugs Need to be Fixed Buggy software is an unfortunate fact; There

More information

Do you have to reproduce the bug on the first replay attempt?

Do 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 information

Dynamically Detecting and Tolerating IF-Condition Data Races

Dynamically 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 information

S/W Programming & Languages

S/W Programming & Languages S/W Programming & Languages Overview Programming five steps Five generations High-level programming Object-oriented programming Internet programming 2 Programming What are the five steps of the programdevelopment

More information

Introduction. CS 2210 Compiler Design Wonsun Ahn

Introduction. CS 2210 Compiler Design Wonsun Ahn Introduction CS 2210 Compiler Design Wonsun Ahn What is a Compiler? Compiler: A program that translates source code written in one language to a target code written in another language Source code: Input

More information

Sequential Consistency & TSO. Subtitle

Sequential Consistency & TSO. Subtitle Sequential Consistency & TSO Subtitle Core C1 Core C2 data = 0, 1lag SET S1: store data = NEW S2: store 1lag = SET L1: load r1 = 1lag B1: if (r1 SET) goto L1 L2: load r2 = data; Will r2 always be set to

More information

Fundamentals of Programming

Fundamentals of Programming Fundamentals of Programming Dynamic memory Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa March 9, 2012 G. Lipari (Scuola Superiore Sant Anna) Dynamic memory March 9, 2012

More information

DAVE TM & DAVE TM SDK

DAVE TM & DAVE TM SDK Product Name DAVE TM & DAVE TM SDK Release Version V4.2.2 Type Of Release* Productive Name of the Supplier Infineon Technologies AG Mode of Release Infineon Server(http://dave.infineon.com/) Date of Release

More information

ART JIT in Android N. Xueliang ZHONG Linaro ART Team

ART JIT in Android N. Xueliang ZHONG Linaro ART Team ART JIT in Android N Xueliang ZHONG Linaro ART Team linaro-art@linaro.org 1 Outline Android Runtime (ART) and the new challenges ART Implementation in Android N Tooling Performance Data & Findings Q &

More information

Advanced RDMA-based Admission Control for Modern Data-Centers

Advanced RDMA-based Admission Control for Modern Data-Centers Advanced RDMA-based Admission Control for Modern Data-Centers Ping Lai Sundeep Narravula Karthikeyan Vaidyanathan Dhabaleswar. K. Panda Computer Science & Engineering Department Ohio State University Outline

More information

CS 2113 Software Engineering

CS 2113 Software Engineering CS 2113 Software Engineering Do this now!!! From C to Java git clone https://github.com/cs2113f18/c-to-java.git cd c-to-java./install_java Professor Tim Wood - The George Washington University We finished

More information

Processors, Performance, and Profiling

Processors, Performance, and Profiling Processors, Performance, and Profiling Architecture 101: 5-Stage Pipeline Fetch Decode Execute Memory Write-Back Registers PC FP ALU Memory Architecture 101 1. Fetch instruction from memory. 2. Decode

More information

Some possible directions for the R engine

Some possible directions for the R engine Some possible directions for the R engine Luke Tierney Department of Statistics & Actuarial Science University of Iowa July 22, 2010 Luke Tierney (U. of Iowa) Directions for the R engine July 22, 2010

More information

Agile Software Development. Lecture 7: Software Testing

Agile Software Development. Lecture 7: Software Testing Agile Software Development Lecture 7: Software Testing Mahmoud El-Gayyar elgayyar@ci.suez.edu.eg Slides are a modified version of the slides by Prof. Kenneth M. Anderson Outline Testing Terminology Types

More information

Triangle SQL Server User Group Adaptive Query Processing with Azure SQL DB and SQL Server 2017

Triangle SQL Server User Group Adaptive Query Processing with Azure SQL DB and SQL Server 2017 Triangle SQL Server User Group Adaptive Query Processing with Azure SQL DB and SQL Server 2017 Joe Sack, Principal Program Manager, Microsoft Joe.Sack@Microsoft.com Adaptability Adapt based on customer

More information

Software-Controlled Multithreading Using Informing Memory Operations

Software-Controlled Multithreading Using Informing Memory Operations Software-Controlled Multithreading Using Informing Memory Operations Todd C. Mowry Computer Science Department University Sherwyn R. Ramkissoon Department of Electrical & Computer Engineering University

More information

Understanding the latent value in all content

Understanding the latent value in all content Understanding the latent value in all content John F. Kennedy (JFK) November 22, 1963 INGEST ENRICH EXPLORE Cognitive skills Data in any format, any Azure store Search Annotations Data Cloud Intelligence

More information

DefDroid: Towards a More Defensive Mobile OS Against Disruptive App Behavior

DefDroid: Towards a More Defensive Mobile OS Against Disruptive App Behavior http://defdroid.org DefDroid: Towards a More Defensive Mobile OS Against Disruptive App Behavior Peng (Ryan) Huang, Tianyin Xu, Xinxin Jin, Yuanyuan Zhou UC San Diego Growing number of (novice) app developers

More information

Run-time Environments - 3

Run-time Environments - 3 Run-time Environments - 3 Y.N. Srikant Computer Science and Automation Indian Institute of Science Bangalore 560 012 NPTEL Course on Principles of Compiler Design Outline of the Lecture n What is run-time

More information

Outline EEL 5764 Graduate Computer Architecture. Chapter 3 Limits to ILP and Simultaneous Multithreading. Overcoming Limits - What do we need??

Outline EEL 5764 Graduate Computer Architecture. Chapter 3 Limits to ILP and Simultaneous Multithreading. Overcoming Limits - What do we need?? Outline EEL 7 Graduate Computer Architecture Chapter 3 Limits to ILP and Simultaneous Multithreading! Limits to ILP! Thread Level Parallelism! Multithreading! Simultaneous Multithreading Ann Gordon-Ross

More information

EZY Intellect Pte. Ltd., #1 Changi North Street 1, Singapore

EZY Intellect Pte. Ltd., #1 Changi North Street 1, Singapore Oracle Database 12c: Performance Management and Tuning NEW Duration: 5 Days What you will learn In the Oracle Database 12c: Performance Management and Tuning course, learn about the performance analysis

More information

H.-S. Oh, B.-J. Kim, H.-K. Choi, S.-M. Moon. School of Electrical Engineering and Computer Science Seoul National University, Korea

H.-S. Oh, B.-J. Kim, H.-K. Choi, S.-M. Moon. School of Electrical Engineering and Computer Science Seoul National University, Korea H.-S. Oh, B.-J. Kim, H.-K. Choi, S.-M. Moon School of Electrical Engineering and Computer Science Seoul National University, Korea Android apps are programmed using Java Android uses DVM instead of JVM

More information

Path-based Macroanalysis for Large Distributed Systems

Path-based Macroanalysis for Large Distributed Systems Path-based Macroanalysis for Large Distributed Systems 1, Anthony Accardi 2, Emre Kiciman 3 Dave Patterson 1, Armando Fox 3, Eric Brewer 1 mikechen@cs.berkeley.edu UC Berkeley 1, Tellme Networks 2, Stanford

More information

Using Intel VTune Amplifier XE and Inspector XE in.net environment

Using Intel VTune Amplifier XE and Inspector XE in.net environment Using Intel VTune Amplifier XE and Inspector XE in.net environment Levent Akyil Technical Computing, Analyzers and Runtime Software and Services group 1 Refresher - Intel VTune Amplifier XE Intel Inspector

More information

Autotuning. John Cavazos. University of Delaware UNIVERSITY OF DELAWARE COMPUTER & INFORMATION SCIENCES DEPARTMENT

Autotuning. John Cavazos. University of Delaware UNIVERSITY OF DELAWARE COMPUTER & INFORMATION SCIENCES DEPARTMENT Autotuning John Cavazos University of Delaware What is Autotuning? Searching for the best code parameters, code transformations, system configuration settings, etc. Search can be Quasi-intelligent: genetic

More information

Multi-Channel Clustered Web Application Servers

Multi-Channel Clustered Web Application Servers Multi-Channel Clustered Web Application Servers Masters Thesis Proposal Progress American University in Cairo Proposed by Karim Sobh (kmsobh@aucegypt.edu) Supervised by Dr. Ahmed Sameh (sameh@aucegypt.edu)

More information

TraceBack: First Fault Diagnosis by Reconstruction of Distributed Control Flow

TraceBack: First Fault Diagnosis by Reconstruction of Distributed Control Flow TraceBack: First Fault Diagnosis by Reconstruction of Distributed Control Flow Andrew Ayers Chris Metcalf Junghwan Rhee Richard Schooler VERITAS Emmett Witchel Microsoft Anant Agarwal UT Austin MIT Software

More information

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco CS 326 Operating Systems C Programming Greg Benson Department of Computer Science University of San Francisco Why C? Fast (good optimizing compilers) Not too high-level (Java, Python, Lisp) Not too low-level

More information

Analysis and Modeling of Evolving Database-centric Web Applications

Analysis and Modeling of Evolving Database-centric Web Applications Analysis and Modeling of Evolving Database-centric Web Applications SistaVenkataMadhavaKrishna + IIT Guwahati Abhishek Biswas Old Dominion University Karnati Satyadeep + IIT Guwahati Jagannathan Srinivasan

More information

MULTI-CORE PROGRAMMING. Dongrui She December 9, 2010 ASSIGNMENT

MULTI-CORE PROGRAMMING. Dongrui She December 9, 2010 ASSIGNMENT MULTI-CORE PROGRAMMING Dongrui She December 9, 2010 ASSIGNMENT Goal of the Assignment 1 The purpose of this assignment is to Have in-depth understanding of the architectures of real-world multi-core CPUs

More information

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 03 From Programs to Processes Hello. In

More information

Protocol Buffers, grpc

Protocol Buffers, grpc Protocol Buffers, grpc Szolgáltatásorientált rendszerintegráció Service-Oriented System Integration Dr. Balázs Simon BME, IIT Outline Remote communication application level vs. transport level protocols

More information

Proposal To Include Java. As A Language For The IOI.

Proposal To Include Java. As A Language For The IOI. Proposal To Include Java As A Language For The IOI. The following proposal for the inclusion of Java as a new language for the IOI competition is made in the light that the technical difficulties that

More information

Cooperative Bug Isolation

Cooperative Bug Isolation Cooperative Bug Isolation Alex Aiken Mayur Naik Stanford University Alice Zheng Michael Jordan UC Berkeley Ben Liblit University of Wisconsin Build and Monitor Alex Aiken, Cooperative Bug Isolation 2 The

More information

Optimize Data Structures and Memory Access Patterns to Improve Data Locality

Optimize Data Structures and Memory Access Patterns to Improve Data Locality Optimize Data Structures and Memory Access Patterns to Improve Data Locality Abstract Cache is one of the most important resources

More information

CS113: Lecture 7. Topics: The C Preprocessor. I/O, Streams, Files

CS113: Lecture 7. Topics: The C Preprocessor. I/O, Streams, Files CS113: Lecture 7 Topics: The C Preprocessor I/O, Streams, Files 1 Remember the name: Pre-processor Most commonly used features: #include, #define. Think of the preprocessor as processing the file so as

More information

Thomas Pelaia II, Ph.D. XAL Workshop 2012 December 13, 2012 Managed by UT-Battelle for the Department of Energy

Thomas Pelaia II, Ph.D. XAL Workshop 2012 December 13, 2012 Managed by UT-Battelle for the Department of Energy Thomas Pelaia II, Ph.D. XAL Workshop 2012 December 13, 2012 XAL Loose Timeline at SNS 2012 Software Maintenance Neutron Production Operations Software Development Intensity Commissioning Machine Study

More information

Software Tools for Low-Level Software and Operating Systems Classes. Max Walter & Sven Karlsson Technical University of Denmark

Software Tools for Low-Level Software and Operating Systems Classes. Max Walter & Sven Karlsson Technical University of Denmark Software Tools for Low-Level Software and Operating Systems Classes Max Walter & Sven Karlsson Technical University of Denmark Introduction I have been involved in a number of classes Real Time and Embedded

More information

Testing, code coverage and static analysis. COSC345 Software Engineering

Testing, code coverage and static analysis. COSC345 Software Engineering Testing, code coverage and static analysis COSC345 Software Engineering Outline Various testing processes ad hoc / formal / automatic Unit tests and test driven development Code coverage metrics Integration

More information

C introduction: part 1

C introduction: part 1 What is C? C is a compiled language that gives the programmer maximum control and efficiency 1. 1 https://computer.howstuffworks.com/c1.htm 2 / 26 3 / 26 Outline Basic file structure Main function Compilation

More information

CS3350B Computer Architecture CPU Performance and Profiling

CS3350B Computer Architecture CPU Performance and Profiling CS3350B Computer Architecture CPU Performance and Profiling Marc Moreno Maza http://www.csd.uwo.ca/~moreno/cs3350_moreno/index.html Department of Computer Science University of Western Ontario, Canada

More information

Copyright 2018, Oracle and/or its affiliates. All rights reserved.

Copyright 2018, Oracle and/or its affiliates. All rights reserved. Beyond SQL Tuning: Insider's Guide to Maximizing SQL Performance Monday, Oct 22 10:30 a.m. - 11:15 a.m. Marriott Marquis (Golden Gate Level) - Golden Gate A Ashish Agrawal Group Product Manager Oracle

More information

AMCAT Automata Coding Sample Questions And Answers

AMCAT Automata Coding Sample Questions And Answers 1) Find the syntax error in the below code without modifying the logic. #include int main() float x = 1.1; switch (x) case 1: printf( Choice is 1 ); default: printf( Invalid choice ); return

More information

for Loop Lesson 3 Outline

for Loop Lesson 3 Outline Outline 1. Outline 2. for Loop with a float Counter: BAD! 3. float Counter Example #1 4. float Counter Example #2 5. Why float Counters are BAD BAD BAD 6. BAD float Counter Example #1 7. BAD float Counter

More information

Repair & Refactoring

Repair & Refactoring S C I E N C E P A S S I O N T E C H N O L O G Y Repair & Refactoring Birgit Hofer Institute for Software Technology 1 u www.tugraz.at Outline Model-based Software Debugging o Traffic Light Example Repair

More information

SCALABLE, LOW LATENCY MODEL SERVING AND MANAGEMENT WITH VELOX

SCALABLE, LOW LATENCY MODEL SERVING AND MANAGEMENT WITH VELOX THE MISSING PIECE IN COMPLEX ANALYTICS: SCALABLE, LOW LATENCY MODEL SERVING AND MANAGEMENT WITH VELOX Daniel Crankshaw, Peter Bailis, Joseph Gonzalez, Haoyuan Li, Zhao Zhang, Ali Ghodsi, Michael Franklin,

More information

CMSC 411 Computer Systems Architecture Lecture 13 Instruction Level Parallelism 6 (Limits to ILP & Threading)

CMSC 411 Computer Systems Architecture Lecture 13 Instruction Level Parallelism 6 (Limits to ILP & Threading) CMSC 411 Computer Systems Architecture Lecture 13 Instruction Level Parallelism 6 (Limits to ILP & Threading) Limits to ILP Conflicting studies of amount of ILP Benchmarks» vectorized Fortran FP vs. integer

More information

Systems Architecture. Monolithic Systems

Systems Architecture. Monolithic Systems Systems Architecture Monolithic Systems 13 - Monolithic CSC407 1 no architecture Monolithic Systems reports static data imported data dynamic data 13 - Monolithic CSC407 2 1 Examples Most programs you

More information

Under the Compiler's Hood: Supercharge Your PLAYSTATION 3 (PS3 ) Code. Understanding your compiler is the key to success in the gaming world.

Under the Compiler's Hood: Supercharge Your PLAYSTATION 3 (PS3 ) Code. Understanding your compiler is the key to success in the gaming world. Under the Compiler's Hood: Supercharge Your PLAYSTATION 3 (PS3 ) Code. Understanding your compiler is the key to success in the gaming world. Supercharge your PS3 game code Part 1: Compiler internals.

More information

CS2141 Software Development using C/C++ Debugging

CS2141 Software Development using C/C++ Debugging CS2141 Software Development using C/C++ Debugging Debugging Tips Examine the most recent change Error likely in, or exposed by, code most recently added Developing code incrementally and testing along

More information

Huge market -- essentially all high performance databases work this way

Huge market -- essentially all high performance databases work this way 11/5/2017 Lecture 16 -- Parallel & Distributed Databases Parallel/distributed databases: goal provide exactly the same API (SQL) and abstractions (relational tables), but partition data across a bunch

More information

Dynamic Languages Strike Back. Steve Yegge Stanford EE Dept Computer Systems Colloquium May 7, 2008

Dynamic Languages Strike Back. Steve Yegge Stanford EE Dept Computer Systems Colloquium May 7, 2008 Dynamic Languages Strike Back Steve Yegge Stanford EE Dept Computer Systems Colloquium May 7, 2008 What is this talk about? Popular opinion of dynamic languages: Unfixably slow Not possible to create IDE-quality

More information

Oracle Database 12c: Performance Management and Tuning

Oracle Database 12c: Performance Management and Tuning Oracle University Contact Us: +43 (0)1 33 777 401 Oracle Database 12c: Performance Management and Tuning Duration: 5 Days What you will learn In the Oracle Database 12c: Performance Management and Tuning

More information

HPC Lab. Session 4: Profiler. Sebastian Rettenberger, Chaulio Ferreira, Michael Bader. November 9, 2015

HPC Lab. Session 4: Profiler. Sebastian Rettenberger, Chaulio Ferreira, Michael Bader. November 9, 2015 HPC Lab Session 4: Profiler Sebastian Rettenberger, Chaulio Ferreira, Michael Bader November 9, 2015 Session 4: Profiler, November 9, 2015 1 Profiler Profiling allows you to learn where your program spent

More information

CYSE 411/AIT 681 Secure Software Engineering Topic #14. Program Analysis

CYSE 411/AIT 681 Secure Software Engineering Topic #14. Program Analysis CYSE 411/AIT 681 Secure Software Engineering Topic #14. Program Analysis Instructor: Dr. Kun Sun Program Analysis The process of automatically analyzing the behavior of computer programs regarding a property

More information

9/5/17. The Design and Implementation of Programming Languages. Compilation. Interpretation. Compilation vs. Interpretation. Hybrid Implementation

9/5/17. The Design and Implementation of Programming Languages. Compilation. Interpretation. Compilation vs. Interpretation. Hybrid Implementation Language Implementation Methods The Design and Implementation of Programming Languages Compilation Interpretation Hybrid In Text: Chapter 1 2 Compilation Interpretation Translate high-level programs to

More information

Row Buffer Locality Aware Caching Policies for Hybrid Memories. HanBin Yoon Justin Meza Rachata Ausavarungnirun Rachael Harding Onur Mutlu

Row Buffer Locality Aware Caching Policies for Hybrid Memories. HanBin Yoon Justin Meza Rachata Ausavarungnirun Rachael Harding Onur Mutlu Row Buffer Locality Aware Caching Policies for Hybrid Memories HanBin Yoon Justin Meza Rachata Ausavarungnirun Rachael Harding Onur Mutlu Executive Summary Different memory technologies have different

More information

Truffle A language implementation framework

Truffle A language implementation framework Truffle A language implementation framework Boris Spasojević Senior Researcher VM Research Group, Oracle Labs Slides based on previous talks given by Christian Wimmer, Christian Humer and Matthias Grimmer.

More information

Optimization of Vertical and Horizontal Beamforming Kernels on the PowerPC G4 Processor with AltiVec Technology

Optimization of Vertical and Horizontal Beamforming Kernels on the PowerPC G4 Processor with AltiVec Technology Optimization of Vertical and Horizontal Beamforming Kernels on the PowerPC G4 Processor with AltiVec Technology EE382C: Embedded Software Systems Final Report David Brunke Young Cho Applied Research Laboratories:

More information

Project 0: Implementing a Hash Table

Project 0: Implementing a Hash Table Project : Implementing a Hash Table CS, Big Data Systems, Spring Goal and Motivation. The goal of Project is to help you refresh basic skills at designing and implementing data structures and algorithms.

More information

COMP-202. Recursion. COMP Recursion, 2011 Jörg Kienzle and others

COMP-202. Recursion. COMP Recursion, 2011 Jörg Kienzle and others COMP-202 Recursion Recursion Recursive Definitions Run-time Stacks Recursive Programming Recursion vs. Iteration Indirect Recursion Lecture Outline 2 Recursive Definitions (1) A recursive definition is

More information

Performance Profiling

Performance Profiling Performance Profiling Minsoo Ryu Real-Time Computing and Communications Lab. Hanyang University msryu@hanyang.ac.kr Outline History Understanding Profiling Understanding Performance Understanding Performance

More information

From bottom to top: Exploiting hardware side channels in web browsers

From bottom to top: Exploiting hardware side channels in web browsers From bottom to top: Exploiting hardware side channels in web browsers Clémentine Maurice, Graz University of Technology July 4, 2017 RMLL, Saint-Étienne, France Rennes Graz Clémentine Maurice PhD since

More information

Inner Oracles: Input- Specific Assertions on Internal States

Inner Oracles: Input- Specific Assertions on Internal States Inner Oracles: Input- Specific Assertions on Internal States Yingfei Xiong, Dan Hao, Lu Zhang, Tao Zhu, Muyao Zhu, Tian Lan Peking University, China 2015 How a Test Detects a Bug Test Input Trigger a Bug

More information

Figure 1 Common Sub Expression Optimization Example

Figure 1 Common Sub Expression Optimization Example General Code Optimization Techniques Wesley Myers wesley.y.myers@gmail.com Introduction General Code Optimization Techniques Normally, programmers do not always think of hand optimizing code. Most programmers

More information

OASIS: Self-tuning Storage for Applications

OASIS: Self-tuning Storage for Applications OASIS: Self-tuning Storage for Applications Kostas Magoutis, Prasenjit Sarkar, Gauri Shah 14 th NASA Goddard- 23 rd IEEE Mass Storage Systems Technologies, College Park, MD, May 17, 2006 Outline Motivation

More information

The new Ehcache and Hibernate Caching SPI Provider

The new Ehcache and Hibernate Caching SPI Provider The new Ehcache 2.0.0 and Hibernate Caching SPI Provider Presented by: Chris Dennis, Software Engineer, Terracotta Inc. May 12, 2010 Agenda Intro to Ehcache and Terracotta Ehcache and Ehcache + Terracotta

More information

Jazz: A Tool for Demand-Driven Structural Testing

Jazz: A Tool for Demand-Driven Structural Testing Jazz: A Tool for Demand-Driven Structural Testing J. Misurda, J. A. Clause, J. L. Reed, P. Gandra, B. R. Childers, and M. L. Soffa Department of Computer Science University of Pittsburgh Pittsburgh, Pennsylvania

More information

Visualizing the out-of-order CPU model. Ryota Shioya Nagoya University

Visualizing the out-of-order CPU model. Ryota Shioya Nagoya University Visualizing the out-of-order CPU model Ryota Shioya Nagoya University Introduction This presentation introduces the visualization of the out-of-order CPU model in gem5 2 Introduction Let's suppose you

More information

Manual Trigger Sql Server 2008 Examples Insert Update

Manual Trigger Sql Server 2008 Examples Insert Update Manual Trigger Sql Server 2008 Examples Insert Update blog.sqlauthority.com/2011/03/31/sql-server-denali-a-simple-example-of you need to manually delete this trigger or else you can't get into master too

More information

Announcements. PS 3 is out (see the usual place on the course web) Be sure to read my notes carefully Also read. Take a break around 10:15am

Announcements. PS 3 is out (see the usual place on the course web) Be sure to read my notes carefully Also read. Take a break around 10:15am Announcements PS 3 is out (see the usual place on the course web) Be sure to read my notes carefully Also read SQL tutorial: http://www.w3schools.com/sql/default.asp Take a break around 10:15am 1 Databases

More information

Top Ten Enterprise Java performance problems. Vincent Partington Xebia

Top Ten Enterprise Java performance problems. Vincent Partington Xebia Top Ten Enterprise Java performance problems and their solutions Vincent Partington Xebia Introduction Xebia is into Enterprise Java: Development Performance audits a.o. Lots of experience with performance

More information

Testing. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 13

Testing. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 13 Testing Christopher Simpkins chris.simpkins@gatech.edu Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 2340 1 / 13 Unit Tests and Functional Tests Unit tests are tests of individual system

More information

SQLite Page Caching Algorithm

SQLite Page Caching Algorithm Ryerson University Digital Commons @ Ryerson Computer Science Technical Reports Computer Science 4-16-2013 SQLite Page Caching Algorithm Jason V. Ma Ryerson University, jason.ma@ryerson.ca Follow this

More information

Development tools: Version control, build tools, and integrated development environments 1

Development tools: Version control, build tools, and integrated development environments 1 Development tools: Version control, build tools, and integrated development environments 1 HFOSS 2010 Faculy Workshop 18 May 2010 1 CC by-nc-sa 3.0 Development tools Why do we need version control? With

More information

TERN: Stable Deterministic Multithreading through Schedule Memoization

TERN: Stable Deterministic Multithreading through Schedule Memoization TERN: Stable Deterministic Multithreading through Schedule Memoization Heming Cui, Jingyue Wu, Chia-che Tsai, Junfeng Yang Columbia University Appeared in OSDI 10 Nondeterministic Execution One input many

More information

CSci 4061 Introduction to Operating Systems. Programs in C/Unix

CSci 4061 Introduction to Operating Systems. Programs in C/Unix CSci 4061 Introduction to Operating Systems Programs in C/Unix Today Basic C programming Follow on to recitation Structure of a C program A C program consists of a collection of C functions, structs, arrays,

More information

Announcements. Working on requirements this week Work on design, implementation. Types. Lecture 17 CS 169. Outline. Java Types

Announcements. Working on requirements this week Work on design, implementation. Types. Lecture 17 CS 169. Outline. Java Types Announcements Types Working on requirements this week Work on design, implementation Lecture 17 CS 169 Prof. Brewer CS 169 Lecture 16 1 Prof. Brewer CS 169 Lecture 16 2 Outline Type concepts Where do types

More information

Array Initialization

Array Initialization Array Initialization Array declarations can specify initializations for the elements of the array: int primes[10] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 ; initializes primes[0] to 2, primes[1] to 3, primes[2]

More information

Performance Evaluation of Virtualization Technologies

Performance Evaluation of Virtualization Technologies Performance Evaluation of Virtualization Technologies Saad Arif Dept. of Electrical Engineering and Computer Science University of Central Florida - Orlando, FL September 19, 2013 1 Introduction 1 Introduction

More information

CS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University

CS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University CS 112 Introduction to Computing II Wayne Snyder Department Boston University Today: Java basics: Compilation vs Interpretation Program structure Statements Values Variables Types Operators and Expressions

More information

High Performance Computing Lecture 1. Matthew Jacob Indian Institute of Science

High Performance Computing Lecture 1. Matthew Jacob Indian Institute of Science High Performance Computing Lecture 1 Matthew Jacob Indian Institute of Science Agenda 1. Program execution: Compilation, Object files, Function call and return, Address space, Data & its representation

More information

HW1 due Monday by 9:30am Assignment online, submission details to come

HW1 due Monday by 9:30am Assignment online, submission details to come inst.eecs.berkeley.edu/~cs61c CS61CL : Machine Structures Lecture #2 - C Pointers and Arrays Administrivia Buggy Start Lab schedule, lab machines, HW0 due tomorrow in lab 2009-06-24 HW1 due Monday by 9:30am

More information

Chapter 11 Introduction to Programming in C

Chapter 11 Introduction to Programming in C Chapter 11 Introduction to Programming in C C: A High-Level Language Gives symbolic names to values don t need to know which register or memory location Provides abstraction of underlying hardware operations

More information