Title: The Dynamic Probe Class Library An Infrastructure for Developing Instrumentation for Performance Too
1The Dynamic Probe Class Library An
Infrastructure for Developing Instrumentation for
Performance Tools
- Luiz DeRose and Ted Hoover (IBM)
- Jeffrey K. Hollingsworth (UMD)
- presented by M. Voss
2Outline
- Motivation for Dyninst / DPCL
- Background on Dynamic Instrumentation
- Dyninst
- DPCL
- Example Tools
- Conclusion
3Motivation for Dyninst/DPCL
- Architectures are becoming more complex
- especially true of parallel machines
- difficult to get near peak performance, why?
- Complex architectures mean complex tools
- tool development resources are shrinking
- more tools are needed fewer tools are made
- Big cost of tool development instrumentation
- it would help to have a general infrastructure
for arbitrary instrumentation ? DPCL
4What is Instrumentation?
- Collect data about the performance of an app
- inserted into the application, e.g. calls to
timers - To keep overhead low
- few events should be recorded
- information per event should be small
- To get maximum information
- lots of events need to be recorded
- lots of information about each events is kept
- Obvious conflict between goals
5Dynamic Instrumentation
- Can insert instrumentation dynamically as an
application is executing - Insert instrumentation only when it is needed
Look for Bottleneck
Inspect Closely to Find Cause
Inspect Closely to Find Solution
6Benefits of Dynamic Instrumentation
- You can highly tune the resolution of
instrumentation - reduce perturbation to application
- reduce size of trace file (collected data)
- Dont need to recompile or relink
- aggravating at best
- impossible with 3rd party libraries
7History of Dyninst / DPCL
Paradyn Parallel Performance Toolset (U of Wisc.)
DPCL commercial parallel tool (IBM)
Dyninst (U of Maryland)
(just the dynamic instrumentation part)
8How Dyninst Works
9How Dyninst Works (part II)
- Uses the procs or ptrace interface
- designed for debuggers
- lets you inspect and modify program image
- Dyninst hides the details of
- building and compiling new code snippets
- attaching to a target application
- finding points in the target application
- inserting the code in the target application
10DPCL Dynamic Probe Class Library
- Tightly coupled to AIX Parallel Operating
Environment (POE) - can handle parallel applications well
- handles both MPI and threaded applications
- Is a value-added layer on top of Dyninst
- parallel stuff
- more security
- an asynchronous model
- probes can communicate back to tool
11How DPCL Works
Ais_send()
12Probes and Snippets
- Point probes
- interesting locations in the application
- function entry and exit points,
- One shot probes
- executed right away, once
- Phase probes
- executed every so often when timer expires
- Snippet
- the inserted instrumentation code
13Scalability
- Big parallel apps on big parallel machines
- many processes, but similar images
- Modify one copy of image, applied to all
- Asynchronous nature of daemons
14Example Tools
- Dynamic Printf
- insert printfs when you want them
- DynaProf
- gdb-like profiling tool for serial MPI and OpenMP
apps - GUI Dynamic Instrumentation
- Paraver
15Future Work
- DPCL is open source
- Debugger support
- mapping to line numbers
- more variable info
- arbitrary probe points
- DPCL-Dyninst compatibility
- trying to remerge the source for these projects
16Vampir/GuideView Dynamic Instrumentation Tool
17GuideView for performance analysis in OpenMP
codes.
Vampir for MPI codes.
18Smg98 Time
19Sppm Time
20Sweep3d Time
21Umt98 Time
22Instrumentation Time