25
Intel, Intel Inside (logos) and Itanium are trademarks of Intel Corporation in the United States, other countries, or both. Linux is a trademark of Linus Torvalds in the United States, other countries or both. Qt and the Qt logo are trademarks of Trolltech in Norway, the United States and other countries. Open|SpeedShop, SGI SpeedShop, IRIX, SGI and SGI Altix are trademarks of Silicon Graphics Inc. IBM is a registered trademarks of International Business Machines Corporation in the United States, other countries, or both. All other trademarks mentioned herein are the property of their respective owners Trademark Acknowledgements

Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

Embed Size (px)

Citation preview

Page 1: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

– Intel, Intel Inside (logos) and Itanium are trademarks of Intel Corporation in the United States, other countries, or both.

– Linux is a trademark of Linus Torvalds in the United States, other countries or both.

– Qt and the Qt logo are trademarks of Trolltech in Norway, the United States and other countries.

– Open|SpeedShop, SGI SpeedShop, IRIX, SGI and SGI Altix are trademarks of Silicon Graphics Inc.

– IBM is a registered trademarks of International Business Machines Corporation in the United States, other countries, or both.

– All other trademarks mentioned herein are the property of their respective owners

Trademark Acknowledgements

Page 2: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

Presentation Agenda

Open|SpeedShop Presentation Agenda:

– What Is Open|SpeedShop?– Project Overview– Design Goals– Design Overview– Screen Shots– Milestones– Credits

Page 3: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

What Is Open|SpeedShop?

• What is Open|SpeedShop?– A performance analysis/debugging tool that uses a set of experiments to help answer

the question:

• Where is my program spending the most time and why?

• Who would need a performance analysis/debugging tool?– Any developer interested in the performance of their application.

Page 4: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

Project Overview

• What is Open|SpeedShop?

– Open Source Performance Tool

• Uses a set of experiments to help answer the question:– Where is my program spending the most time and why?

• Based on SGI® SpeedShop™ software concepts for the IRIX® operating system

– Types of experiments

– Batch performance analysis

– Variety of GUI views for same experiment

• Cluster Friendly

• Multi-Platform Support

– Depends on availability of Dyninst

– SGI target is SGI® Altix® system based on the Intel® Itanium™ chip

• Implemented Using Open Source Components

• DOE/NNSA co-funded - as part of ASC PathForward

Page 5: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

Design Goals

• Easy to Use– Targeting scientists and engineers that may not be versed in computer architecture– Multiple modes of operation

• GUI

• Command line (interactive and non-interactive)

• Scripting (as Python module)

• Batch

• Portable– Platform Independent When Possible

• Use of components that already support platforms of interest.

• Some recoding may be necessary if using unique features of an architecture.

• Scalable– Thousands of Processors

• ASC laboratory systems already use up to 8192 processors. Future systems even larger.

• SGI® Altix® system installed at a customer site has 10240 processors.

– Hundreds of Shared Libraries• Some SGI customers loads 300+ shared libraries.

Page 6: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

Design Goals (Continued)

• Extensible Plugin Concept– Gathering New Types of Performance Data– New Views of Performance Data– Our base default experiments are plugins

• Supportable– Tested & Stable

• Testing done from the beginning. Not an afterthought!– Unit– Regression– Component integration– Big application

– Simple Installation• Troubleshooting tools assist in installation and configuration.

• Reusable– Use Open Source Tools When Possible

• Don't reinvent the wheel!

– Developed to allow others to create both open and proprietary tools..

Page 7: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

Design Overview

• Foundation of Open Source Components

– Core Components (shown here)– Build System (Autoconf, Automake,

Libtool, Make & GCC)– Source Control (CVS)– Testing (Python)

• Layered Approach– Open Source OS-Dependent Layer– Non-Monolithic to Encourage Reuse– Higher Levels of Abstraction Going Up

• Extensible via Plugin Modules– Support New Data & Views– Vendor Differentiation

Page 8: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

Design Overview: Framework

• Framework Provides– Process Control– Performance Data Collection Abstractions

• Collectors, Parameters, Metrics

– Symbol Table Caching– Data Management & Caching– Extensibility via Collector Plugins

• Simplified Instrumentation

– Asynchronous Operation– C++ API

Page 9: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

Design Overview: UI Semantic Routines

• UI Semantic Routines Provide– Common Performance Tool Operations

• Create Process, Attach to Thread

• Start/Stop Thread

• Experiment Management/Selection

• Get/Set Parameters

• Start/Stop Data Collection

• Save/Restore Performance Data

– Framework State Management• Provide synchronous sanity to

asynchronous Framework

Page 10: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

Design Overview: CLI

• CLI Provides– Parsing of Complex Commands– Logging of Commands– Replay of Logged Commands

Page 11: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

Design Overview: GUI

• GUI Provides– Display Panel Management– Process Selection & Control– Experiment Selection & Control– Annotated Source Views– Sorted Lists (e.g. “Top 5 Functions”)– Data Comparisons

• Thread vs. Thread• Pre-Optimization vs. Post-Optimization

– Wizards to Guide Novice Users– Extensibility via Panel Plugins

Page 12: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

Example

Example using Open|SpeedShop GUI

1) Bring up screen

2) Follow PC sampling wizard

3) Load in program to run experiment on

4) Results as a sorted list of function times

5) Source and data shown together

6) Run second experiment

7) Compare results

8) Combine collectors for custom experiment

Page 13: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering
Page 14: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering
Page 15: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering
Page 16: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering
Page 17: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering
Page 18: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering
Page 19: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering
Page 20: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering
Page 21: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

Milestones

Open|SpeedShop Milestones and Proposed Schedule– Infrastructure deliveries in September and December, 2004

– PC sampling experiment delivered to DOE & partners on 3/14/05

– Additional Experiments in Pipeline – (proposed schedule)

• User Time 2nd Quarter 2005• Hardware Counter 3rd Quarter 2005• Floating Point Exception 4th Quarter 2005• Input/Output tracing 1st Quarter 2006• MPI call tracing 2nd Quarter 2006

– Proposed source availability for SC 2005

– Official open source sometime second half 2006

Page 22: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

Credits

• Presentation

– Jim Galarowicz ([email protected])

– Al Stipek ([email protected])

– William Hachfeld ([email protected])

– Helen Stepanov ([email protected])

• Partners

– ASC lab: DOE – as part of ASC PathForward

Page 23: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

Credits Cont.

• Technology (Cont.)

– Dyninst: jointly developed by the University of Wisconsin and

the University of Maryland - http://www.dyninst.org

– DPCL : IBM® Open Source Project - http://sourceforge.net/projects/dpcl

Page 24: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

Credits Cont.

• Technology (Cont.)

– Boost.Python: Open Source Project -

http://www.boost.org/libs/python

– Python: Open Source Project - http://www.python.org

– PAPI: University of Tennessee - http://icl.cs.utk.edu/papi

– SQLite: Open Source Project - http://www.sqlite.org

– Qt ® : GUI toolkit - http://www.trolltech.com/products/qt

Page 25: Silicon Graphics, Inc. Presented by: Open|SpeedShop™ An Open Source Performance Debugger Overview Jack Carter MTS SGI Core Engineering

Questions

Questions:

Jack Carter

[email protected]