silicon graphics, inc. presented by: open|speedshop ™ a dyninst based performance tool overview...

19
Silicon Graphics, Inc. Presented by: Open|SpeedShop A Dyninst Based Performance Tool Overview & Status Jim Galarowicz Manager - SGI Tools group Bill Hachfeld Steve Collins

Upload: elmer-mosley

Post on 26-Dec-2015

215 views

Category:

Documents


2 download

TRANSCRIPT

Silicon Graphics, Inc.

Presented by:

Open|SpeedShop™

A Dyninst Based Performance Tool Overview & Status

Jim Galarowicz

Manager - SGI Tools group

Bill Hachfeld

Steve Collins

Trademark Acknowledgements

• 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.

• AIX and PowerPC are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both.

• Tru64 is a trademark of  Hewlett-Packard Corporation.

• AMD, the AMD Arrow logo,AMDOpteron, and combinations thereof, are trademaks of Advanced Micro Devices, Inc.

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

Presentation Agenda

Open|SpeedShop™ Presentation Agenda:

– Project Overview– Design Goals– Design Overview

Project Overview

• What is Open|SpeedShop™?

– Open Source Performance Tool Comprised of • Based on SGI® Speedshop™ software concepts for the IRIX® operating system

• Developed for Multi-Platform Support

• Implemented Using Open Source Components

– DOE/NNSA co-funded via ASC (Advanced Simulation and Computing Program) PathForward– Partnering with Universities of Wisconsin & Maryland

• Schedule– Project Began: July, 2004– Quarterly Milestone Releases– First Development Phase Ends: mid-2006

Design Goals

• Easy to Use– Don’t have to be a Computer Scientist or Computer Engineer

• What on earth is call stack sampling? Why would I use it?

– GUI, Command Line, Batch Scheduled -- Your Choice!

• Portable– Platform Independent

• Use components that already support the platforms of interest

• Some recoding may be necessary if using unique features of a particular platform

• Scalable– Thousands of Processors

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

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

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

Design Goals (Continued)

• Extensible– Gathering New Types of Performance Data– New Views of Performance Data

• Supportable– Tested & Stable

• Testing done from the beginning. Not an afterthought!

• Test suites delivered with tool

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

• Reuse– Use Open Source Tools When Possible

• Don’t reinvent the wheel!

– Keeping in Mind Licensing Requirements

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

Design Overview: Dyninst

• Universities of Wisconsin & Maryland– http://www.dyninst.org/

• Provides– Process Control– Instrumentation of Unmodified Binaries– Symbol Table Information

• Status– Supports Most Platforms of Interest

• AIX® /PowerPC®, • IRIX® /MIPS®, • Linux® /Intel® IA-32, • Linux® /Intel® IA64, • Tru64™/Alpha

– Additional Platform Support Planned– Additional Compiler Support Planned

Design Overview: DPCL

• Open Source Project– http://sourceforge.net/projects/dpcl

• Provides– Dyninst’s Capabilities Across a Cluster– Transport of Performance Data

• Status– Supports Some Platforms of Interest

• AIX/Power, Linux/IA32, Linux/IA64

– Needs Better Per-Line Symbol Information– Needs Better Shared Library Support– Needs Scalability Enhancements– Needs Integration of Hybrid changes– Needs Integration of SGI changes/fixes

Design Overview: SQLite

• Open Source Project– http://www.sqlite.org

• Provides– In-Process Relational Database Engine– Single-File Databases

• Up to 2Tb

– Queries Specified Using SQL– No Complex Configuration

• Status– Supports Major Platforms of Interest

• AIX/Power, IRIX/MIPS, Linux/IA32, Linux/IA64, Linux/AMD Opteron™, Tru64/Alpha

– Needs Little to No Enhancement

Design Overview: PAPI

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

• Provides– Access to CPU Performance Counters– Cross-Platform API

• Status– Supports Major Platforms of Interest

• AIX/Power, IRIX/MIPS, Linux/IA32, Linux/IA64, Linux/AMD Opteron, Tru64/Alpha

– May Need Better Per-Thread Support

Design Overview: Python & Boost.Python

• Open Source Projects– http://www.python.org– http://www.boost.org/libs/python

• Provides– Object-Oriented Scripting Language– Extensibility via C/C++

• Simple Generation of Wrappers (Boost.Python)

– Script-Driven Testing Environment

• Status– Supports Major Platforms of Interest

• AIX/Power, IRIX/MIPS, Linux/IA32, Linux/IA64, Linux/AMD Opteron, Tru64/Alpha

– Needs Little to No Enhancement

Design Overview: Qt®

• Trolltech AS– http://www.trolltech.com/products/qt

• Provides– Object-Oriented GUI Toolkit– GUI Builder– HTML Help System– Internationalization Support– Cross-Platform API

• Status– Supports Major Platforms of Interest

• AIX/Power, IRIX/MIPS, Linux/IA32, Linux/IA64, Linux/AMD Opteron, Tru64/Alpha

– Needs Little to No Enhancement

Qt is trademark of Trolltech in Norway, the United States and other countries.

Design Overview: 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

• Status– Design Completed– Mostly Implemented

Design Overview: UI Semantic Routines

• Provides– 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

• Status– Most of Command Set Designed– Partially Implemented

Design Overview: CLI

• Provides– Parsing of Complex Commands– Logging of Commands– Replay of Logged Commands– Extensibility via Command Plugins

• Status– Command Set Partially Defined

• Needs Usability Study

– Partially Implemented

Design Overview: 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 User– Extensibility via Panel Plugins

• Status– Initial Usability Study completed– Wizards & Workflow Prototyped

• Needs Additional Usability Study

– Partially Implemented

Milestones

Open/SpeedShop™ Milestones

– Infrastructure deliveries in September and December, 2004– PC sampling experiment delivered to DOE & partners on 3/14/05– Additional Experiments to delivered one per quarter – 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

– Support for additional platforms

Questions

Questions:

Jim Galarowicz

[email protected]

Steve Collins

[email protected]