Title: TotalView
1TotalView
2Introduction
TotalView Technologies products set the standard
for the interactive analysis and debugging of
serial and parallel codes.
- TotalView Debugger
- Comprehensive debugging solution that
dramatically enhances and simplifies the process
of debugging parallel, data-intensive,
multi-process, multi-threaded or
network-distributed applications - MemoryScape Memory Debugger
- Easy-to-use, graphical, interactive memory
debugger to help inspect and resolve difficult
memory problems including complex multi-process
and multi-threaded programs -
- ReplayEngine
- Freedom to move forward or backwards through
execution history, and work in reverse from from
program crashes
3TotalView Debugger
Value Proposition
- TotalView enhances platforms to be more
productive development environments - Accelerates the pace of research and the time to
delivery for products and solutions - Efficiently locates bugs in data-intensive,
multi-process, multi-threaded, large clusters,
parallel processing environments - Reduces development time to enable quicker
implementation for parallel and distributed
applications. - Allows for more cost effective and efficient
development and provides a rapid return on
investment (ROI)
4TotalView Debugger Highlights
- Great for Threads
- Race conditions can take large engineering effort
to pin down and resolve - Control over threads allows recreation of race
conditions - TVD Debugs OpenMP and Hybrid OpenMP/MPI
- TVD helps development teams take the risk out of
multithreaded development - Essential for Clusters
- Work with many processes with as little as two
windows - Operations can apply narrowly or broadly
- Scalable up to thousands of processes
5TotalView Debugger Highlights
- Ease of Use for Beginners
- Common operations on the GUI
- just click to get more information about
- Variables
- Functions
- Breakpoints
- Processes
- Highly Graphical
- Visualize array data
- A picture is worth 1000 words
- Memory data displayed graphically (I.e, red
blocks are leaks) - Call graph of program structure
- Message queue graph
6TotalView Debugger Highlights
- Memory Debugging
- Easy to apply -- no recompilation or
instrumentation - Lightweight -- minimal impact on application
runtime - Powerful -- points to leaks before they become
floods! - Interactive graphical display
- Makes the connection for the developer between
memory and code - Cross Platform
- Project and code lifespan is often longer than
the lifespan of a hardware platform - TVD has very very similar functionality on a wide
range of systems - Developers and scientists can leverage investment
in learning TotalView across their careers - Support for all kinds of jobs workstations,
servers, clusters and supercomputers
7What Is TotalView?
8Supported Compilers, Distros and Architectures
Product Overview TotalView Debugger
- Platform Support
- SGI IRIX
- Linux x86, x86-64, ia64, Power
- Mac Power and Intel
- Solaris Sparc and AMD64
- HPUX, IA64, AIX, Tru64, IRIX
- Cray X1, XT3, IBM BGL, SiCortex
- Languages / Compilers
- C/C, Fortran, UPC, Assembly
- Many Commercial Open Source Compilers
- Parallel Environments
- MPI (MPICH1 2, LAM, Open MPI, poe, SGI MPT,
Quadrics, MVAPICH, HP MPI many others ) - UPC (HP INTREPID)
9Multi-Thread Debugger
Product Overview TotalView Debugger
- Threads
- Easily understand which thread you are looking at
- Quickly switch thread context
- Monitor the state of all threads
- View data
- Shared
- Stack
- Thread Private
- Control Individual Threads
- Synchronize
- Run/Step
- Hold
10Asynchronous Process Thread Control
Product Overview TotalView Debugger
- Focus on just one or a few processes or threads
- Visibility of what is happening in whole job
- Switch focus easily
- Control at process or thread level
- Asynchronous Control
- Step, Go/Halt
- Hold
- Control with groups of threads or processes
- Go/Halt
- Step
- Synchronize processes or threads
- Breakpoints
- Run-To
11MPI Debugging
Product Overview TotalView Debugger
- Automatic Process Acquisition
- Efficient Cluster Architecture
- Advanced Process Control
- View Parallel Data
- Parallel Expression Evaluation
- Message Queue Display
- Highly Scalable
12Memory Debugger Features
- Highly Graphical Interface
- Heap Memory Visualization
- Automatic Leak Detection
- Dangling pointer Indication
- Memory Corruption Tracking-Configurable Guard
Blocks - Memory Comparisons between Processes
- Also available standalone, as MemoryScape
13- New Product Introduction
- ReplayEngine
14TotalViewNew Product Introduction
- ReplayEngine
- Until now, debugging always meant running only
forward to (hopefully) reach your problem - But unfortunately, just one step too far often
means having to start over again from the
beginning, and hoping the program behavior will
be the same! - With ReplayEngine, you can simply unstep back
through the program and seek out its cause -
deterministically! - Replay gives you a second chance to see what
happened earlier in your program - and without
starting over.
15TotalViewNew Product Introduction
- ReplayEngine
- Captures full execution history
- Record all external input
- Record other sources of non-determinism
- Replay execution
- Replay the execution along exactly the same
trajectory - Can reset to any point along the path already
taken - Everything is managed by the tool
- The user just chooses where to go
- Back into or over functions, one line, or to the
beginning - There is some overhead
- Lots of clever tricks are used to reduce overhead
- Provides Determinism within a debugging session
16TotalViewNew Product Introduction
- Navigation with ReplayEngine
- - an Intuitive User Interface -
Step forward over functions
Step backward over functions
Step forward into functions
Step backward into functions
Advance forward out of current Function, after
the call
Advance backward out of current Function, to
before the call
Advance forward to selected line
Advance backward to selected line
Advance forward to live session
17TotalViewNew Product Introduction
New Toolbar
No Replay? (or not running)
No Active Buttons!
18TotalViewNew Product Introduction
- ReplayEngine
- Consider the following very difficult program
scenario - A crash occurs that destroys the stack backtrace,
giving no information leading up to the problem - ReplayEngine can be used to work backwards from
the crash, and even to observe the stack recreate
itself, providing the critical information on
where and how the problem began. - The ReplayEngine provides the ability to review
any part of the program execution to see all
variables and function calls, from the beginning
of the run to the current time
19(No Transcript)
20(No Transcript)
21(No Transcript)
22(No Transcript)
23(No Transcript)
24ReplayEngine Scenarios
- Especially useful in scenarios that include
- Any crash that destroys the stack backtrace
- Race conditions with multi-threaded programs
- Server applications responding to network input
- Hard-to-reproduce GUI errors
- Crashes with invalid pointers
- Crashes involving write-after-free errors
- Examining complex functions and subroutines
- Writing past the end of an array
- Errors that depend sensitively on input
- We see these kinds of scenarios in
- Commercial applications
- Technical computing
- Education
- Scientific programming
- Network programming
25Why Reverse Debugging?
- Thats the direction you need to go
- Backwards, from the effect to the cause
- Drastically reduces the effort
- No need to restart and run over again from the
beginning - Lets you focus
- Ensures reproducibility
- No chance that youll miss something and not be
able to get it back - Race conditions
- Crashes
- Input-dependent behavior
26ReplayEngine Customer Feedback
- The best thing about ReplayEngine is being able
to step backward. The implementation is done in a
such a manner that it's intuitive to use. - Recently we used the ReplayEngine to solve 2
bugs to identify a wrong input and to find an
error into an algorithm. We had a good feeling
about the experience because the engine is
simple to use and although it's a bit slow it
allows us to go back without trying to guess
the right breakpoint and restart the
application. - ReplayEngine is quite seamlessly integrated
with the TotalView Debugger. - Being able to change breakpoints during replay
is a great feature. - This will improve my productivity because I
don't have to repeatedly restart the program to
get to the execution point to examine the
execution state. - I would tell my colleagues that this is a great
tool - ReplayEngine...allows me to work backwards from
the program crash toward the defect. This is
much nicer than having to repeatedly set
breakpoints and restart my program from the
beginning. - Dan Hiepler, Senior Developer,
Intelligent Light, Inc.
27TotalViewNew Product Introduction
ReplayEngine
- Currently available on Linux-86 and Linux-86-64
machines. - Current MPI Support
- HP MPI
- OpenMPI
- MVAPICH2
- Intel MPI
- MPICH 2
- LAM
28Whats Newin TotalView 8.6
29TotalView 8.6
- Non-Interactive Debugging
- tvscript provides non-interactive batch-mode
debugging with TotalView - Useful for long jobs or jobs larger than
interactive queue - More powerful and flexible than Print-style
debugging - Can be used to automate test/verify environments
- Leverages full power of TotalView in a batch mode
- Utilizes a simple Event/Action notation
- Provides a single file with clean, formatted
output
Think of tvscript as Printf on steroids!
29
30TotalView 8.6
- Remote Display Client
- The Remote Display Client offers users the
ability to easily set up and operate a TotalView
debug session that is running on another system. - TotalView Remote Display has two components
- a Client, which runs on the remote system
- a Server, which runs on any system supported by
TotalView, invisibly manages the connections
between the host and client - The Remote Display Client is available for
- Linux x86
- Linux x86-64
- Windows XP
- Windows Vista
Remote TotalView Debugging thats Easy, Secure
and Fast
31TotalView 8.6
32TotalView 8.6
- Remote Display Security
- Remote Display uses SSH
- Remote Display Server allows only RFB (Remote
Frame Buffer) connections to and from the host - No incoming access to the Server is allowed
- The Server can only connect back to the Viewer
via SSH - Only one Viewer connection is allowed to the
Server - As Remote Display connects to systems, the user
is prompted for password information as required - Also required
- ssh must be available on all nonWindows systems
being accessed. - X Windows must be available on the remote system.
33TotalView Technologies
- Contato
- Alfredo Leon
- alfredo.leon_at_tecpartner.com.br
- Ariani Félix
- ariani.felix_at_tecpartner.com.br
- Telefones (11)5183-6579
- (11)5183-4066