Silicon Graphics, Inc. Presented by: Open|SpeedShop ™ A Dyninst Based Performance Tool Overview &...
-
Upload
elmer-mosley -
Category
Documents
-
view
215 -
download
2
Transcript of Silicon Graphics, Inc. Presented by: Open|SpeedShop ™ A Dyninst Based Performance Tool Overview &...
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