Upload
emory-morrison
View
215
Download
0
Tags:
Embed Size (px)
Citation preview
– 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
Presentation Agenda
Open|SpeedShop Presentation Agenda:
– What Is Open|SpeedShop?– Project Overview– Design Goals– Design Overview– Screen Shots– Milestones– Credits
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.
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
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.
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..
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: 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
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
Design Overview: CLI
• CLI Provides– Parsing of Complex Commands– Logging of Commands– Replay of Logged Commands
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
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
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
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
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
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