Open Overview & Status |SpeedShop Silicon Graphics, Inc.

Download Report

Transcript Open Overview & Status |SpeedShop Silicon Graphics, Inc.

Silicon Graphics, Inc.
Open|SpeedShop™
A Dyninst Based Performance Tool
Overview & Status
Presented by:
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
Hardware Counter
Floating Point Exception
Input/Output tracing
MPI call tracing
– Support for additional platforms
2nd Quarter 2005
3rd Quarter 2005
4th Quarter 2005
1st Quarter 2006
2nd Quarter 2006
Questions
Questions:
Jim Galarowicz
[email protected]
Steve Collins
[email protected]