Instrumentation and Profiling David Kaeli Department of Electrical and Computer Engineering Northeastern University Boston, MA

Slides:



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

Software Engineering 1. Software development – the grand view 2. Requirements engineering.
Systems Software.
Using Hardware Vulnerability Factors to Enhance AVF Analysis Vilas Sridharan RAS Architecture and Strategy AMD, Inc. International Symposium on Computer.
Introduction CSCI 444/544 Operating Systems Fall 2008.
Helper Threads via Virtual Multithreading on an experimental Itanium 2 processor platform. Perry H Wang et. Al.
Enabling Efficient On-the-fly Microarchitecture Simulation Thierry Lafage September 2000.
Hiperspace Lab University of Delaware Antony, Sara, Mike, Ben, Dave, Sreedevi, Emily, and Lori.
Slides 8d-1 Programming with Shared Memory Specifying parallelism Performance issues ITCS4145/5145, Parallel Programming B. Wilkinson Fall 2010.
Spring 2008, Jan. 14 ELEC / Lecture 2 1 ELEC / Computer Architecture and Design Spring 2007 Introduction Vishwani D. Agrawal.
General information Course web page: html Office hours:- Prof. Eyal.
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
Operating Systems Concepts Professor Rick Han Department of Computer Science University of Colorado at Boulder.
1  1998 Morgan Kaufmann Publishers Lectures for 2nd Edition Note: these lectures are often supplemented with other materials and also problems from the.
The Assembly Language Level
1-1 Embedded Software Development Tools and Processes Hardware & Software Hardware – Host development system Software – Compilers, simulators etc. Target.
Chapter 1 Introduction to C Programming. 1.1 INTRODUCTION This book is about problem solving with the use of computers and the C programming language.
Seven Minute Madness: Reconfigurable Computing Dr. Jason D. Bakos.
1 RISC Machines l RISC system »instruction –standard, fixed instruction format –single-cycle execution of most instructions –memory access is available.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Load Test Planning Especially with HP LoadRunner >>>>>>>>>>>>>>>>>>>>>>
Introduction to Virtual Machines. Administration Presentation and class participation: 40% –Each student will present two and a half times this semester.
Project Proposal (Title + Abstract) Due Wednesday, September 4, 2013.
CS102 Introduction to Computer Programming
CSE378 Gen. Intro1 Machine Organization and Assembly Language Programming Machine Organization –Hardware-centric view (in this class) –Not at the transistor.
C.S. Choy95 COMPUTER ORGANIZATION Logic Design Skill to design digital components JAVA Language Skill to program a computer Computer Organization Skill.
A Portable Virtual Machine for Program Debugging and Directing Camil Demetrescu University of Rome “La Sapienza” Irene Finocchi University of Rome “Tor.
UPC/SHMEM PAT High-level Design v.1.1 Hung-Hsun Su UPC Group, HCS lab 6/21/2005.
Natawut NupairojAssembly Language1 Introduction to Assembly Programming.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Chapter 1. Introduction.
A Unified, Low-overhead Framework to Support Continuous Profiling and Optimization Xubin (Ben) He Storage Technology & Architecture Research(STAR)
Chapter 6 : Software Metrics
Upgrade to Real Time Linux Target: A MATLAB-Based Graphical Control Environment Thesis Defense by Hai Xu CLEMSON U N I V E R S I T Y Department of Electrical.
1 Introduction to Database Systems. 2 Database and Database System / A database is a shared collection of logically related data designed to meet the.
1 A Simple but Realistic Assembly Language for a Course in Computer Organization Eric Larson Moon Ok Kim Seattle University October 25, 2008.
Fall 2015, Aug 17 ELEC / Lecture 1 1 ELEC / Computer Architecture and Design Fall 2015 Introduction Vishwani D. Agrawal.
CS/ECE 3330 Computer Architecture Kim Hazelwood Fall 2009.
Introduction 1-1 Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1.
Hadi Salimi Distributed Systems Lab, School of Computer Engineering, Iran University of Science and Technology, Fall 2010 Performance.
OPERATING SYSTEMS Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S.
1 Fast and Efficient Partial Code Reordering Xianglong Huang (UT Austin, Adverplex) Stephen M. Blackburn (Intel) David Grove (IBM) Kathryn McKinley (UT.
Modeling and simulation of systems Model building Slovak University of Technology Faculty of Material Science and Technology in Trnava.
Profile-Guided Optimization Targeting High Performance Embedded Applications David Kaeli Murat Bicer Efe Yardimci Center for Subsurface Sensing and Imaging.
ICOM 6115: COMPUTER SYSTEMS PERFORMANCE MEASUREMENT AND EVALUATION Nayda G. Santiago August 16, 2006.
Computer Organization and Design Computer Abstractions and Technology
Replay Compilation: Improving Debuggability of a Just-in Time Complier Presenter: Jun Tao.
1/30/2003 BARC1 Profile-Guided I/O Partitioning Yijian Wang David Kaeli Electrical and Computer Engineering Department Northeastern University {yiwang,
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
Instrumentation in Software Dynamic Translators for Self-Managed Systems Bruce R. Childers Naveen Kumar, Jonathan Misurda and Mary.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
Allen D. Malony Department of Computer and Information Science TAU Performance Research Laboratory University of Oregon Discussion:
Full and Para Virtualization
© 2000 Mercury Computer Systems, Inc. 1 CORBA (17 prod units) UML (50 prod units) SCE (40 pr PGM (20 prod SAGE (12 prod units) Model-Based Parallel Programming.
Monitors Chapter Seven Dr. Gheith Abandah1. Outline Monitors Software monitors Hardware monitors Dr. Gheith Abandah2.
Vertical Profiling : Understanding the Behavior of Object-Oriented Applications Sookmyung Women’s Univ. PsLab Sewon,Moon.
Spring 2016, Jan 13 ELEC / Lecture 1 1 ELEC / Computer Architecture and Design Spring 2016 Introduction Vishwani D. Agrawal.
Introduction to Computer Programming using Fortran 77.
Computer Operation. Binary Codes CPU operates in binary codes Representation of values in binary codes Instructions to CPU in binary codes Addresses in.
1 Chapter 1 Background Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
1 University of Maryland Using Information About Cache Evictions to Measure the Interactions of Application Data Structures Bryan R. Buck Jeffrey K. Hollingsworth.
Introduction to Performance Tuning Chia-heng Tu PAS Lab Summer Workshop 2009 June 30,
Software Architecture in Practice
课程名 编译原理 Compiling Techniques
Many-core Software Development Platforms
What we need to be able to count to tune programs
EEL 4713/EEL 5764 Computer Architecture
Virtual Machines (Introduction to Virtual Machines)
Lecture Topics: 11/1 General Operating System Concepts Processes
ELEC / Computer Architecture and Design Fall 2014 Introduction
Presentation transcript:

Instrumentation and Profiling David Kaeli Department of Electrical and Computer Engineering Northeastern University Boston, MA

Application Areas Trace generation Performance profiling Dynamic optimization Binary translation Power/energy management Architecture/hardware design studies Virtualization Software validation and testing Information security

Definitions Instrumentation – A hardware or software probe that provides access to either machine state or program state Profiling – The ability to capture information available through instrumentation Tracing – One form of profiling that captures execution information in the form of a sequential record Static – Techniques applied before a program runs (i.e., at compile time) Dynamic – Techniques applied as the program executes (i.e., at run time)

Definitions Trace-driven simulation –Using a previously collected trace as input to a simulator Execution-driven simulation –Tracing and simulating concurrently Tracing Level - –Source – high-level language program –Object – unlinked binary file –Executable – linked, runable, binary file

Definitions Binary translation – translating between two binary executable formats Binary optimization – modifying the binary to produce an optimized binary Emulation - One software program, executing software binary, potentially targeting a different ISA

Why are Instrumentation and Profiling important topics? Allow for pre-hardware evaluation Enable performance tuning after the hardware has been delivered Enable software to adapt to changes in workload usage Provide quantitative software testing quality Provide for power estimation Enable increased security Enable next-generation hardware design criteria

History of Instrumentation IBM Mainframe Instrumentation Systems (1981) –Instrumentation implemented in customized hardware (Logic Support Subsystem) –Provides performance data directly to the customer –Allowed for load balancing and capacity planning –Also provided a level of online diagnostic system Hang detection Recovery Intel In-Circuit-Emulators –Started with Intel in mid-80’s –Externalized signals to ICE pins –Allowed for external control of hardware functions (e.g., L1 caching) Hardware Counters –VAX 8800, Pentiums, PowerPCs, SPARCs, Alphas –On most CPUs today

History of Instrumentation SDS Sigma 7 UCLA 1967

History of Profiling Hardware tracing –Early memory studies (Belady, Denning) –VAX-Tracer (Emer and Clark ISCA 1984) –LLATT (IBM 1985) –ATUM (Stanford, Anant Agarwal 1989) –TRAPEDS (Stunkel, Univ. of Illinois 1989) –Trace/Trap (IBM - Sigmetrics 1989) Logic Analyzers –Used to debug early hardware –Used to tune programs (very difficult to do) –Used to obtain traces for architectural studies Counter readers –VAX8800 Histogram Monitors –DCPI – Digital Equipment (Alpha)

History of Profiling 1979 – Hewlett Packard Model 85 Used for control and data acquisition

Issues with Instrumentation and Profiling Overhead – what type of perturbation does the instrumentation and profiling introduce? Accuracy – does our profile reflect the actual execution? Completeness – do I capture OS, interrupts, libraries?? Portability – is my approach ISA and OS independent? Input independence – does my output change for different inputs? Capacity – how much can I capture? Speed – do I catch the fastest event of interest? Cost – is this worth the investment?

Today, Profiling, Simulation and Tracing have become mainstream research areas Cost of simulation is too high Need for increased performance accuracy Need for software security Need to model increasingly complex designs New workshops and symposia: –IEEE International Symposium on Workload Characterization – annual conference –Workshop on Binary Instrumentation and Analysis (held with PACT in 2005 and 2006, special issue of Dec 2005 ACM SIGARCH News) –ACM Symposium on Code Generation and Optimization (feedback directed optimization) – annual conference –ACM Transactions on Architecture and Code Optimization – high quality ACM journal

This class will: –Present a range of technologies that fall under the broad definition of profiling and instrumentation –Present some recent implementations that utilize these technologies to improve performance, scalability, reliability, power and security –Involve readings from the literature and a lab assignment

Your grade in this class will be based on: –Your course project – 40% –Your paper review – 40% –Your participation in class – 20%  Questions and discussion are encouraged!