TotalView: The Leader in MPI and OpenMP Debugging
TotalView Debugger is the de facto “gold standard” for MPI
and OpenMP debugging. Considered an indispensible tool in the most
advanced and prestigious research, commercial, and academic
institutions in the world, TotalView has remained the proven leader in
parallelism during more than 19 years of continuous development and
refinement.
Isolating interprocess communication problems can be like trying to
find your way through a maze – in the dark. TotalView has many
built-in features that illuminate and map your path. Features like our
visual process grid and Message Queue Graph give you immediate
feedback on the state of any process in your application. And
TotalView makes debugging remote processes just as easy as debugging
local processes.
Automatic Process Acquisition
TotalView makes remote debugging as easy as local. Your complex MPI
code can have hundreds of MPI processes running in parallel and
perhaps distributed across several machines. TotalView automatically
detects that a new MPI process has started and automatically attaches
to it. MPI provides a mechanism for us to know which processes on what
hosts are part of a parallel job, and TotalView makes it a simple
operation to attach to them all. And advanced users can debug an
arbitrary subset of the MPI processes.
Custom Process Groups
TotalView lets you easily create custom process groups. Then, when
you select that custom group to control, all TotalView commands will
act on that group. The Processes tab provides visual feedback, making
it easy to keep track of which processes you are controlling at any
given time.
Message Queue Graph
Our Message Queue Graph gives you a visual representation of the
message queue information, making it easy to see where interprocess
communication has gone wrong. Simply choose Tools > Message Queue
Graph from the Process Window, select the types of messages you would
like to see, and click Update. TotalView will show you an
easy-to-understand graph. A click on any process provides more
detail.
Message Queue Window
TotalView provides visibility and insight into how your MPI
processes are communicating with one another. Since MPI process
communication problems are both common and often hard to detect, the
TotalView Message State Window is an essential feature for your
MPI debugging. This window makes it easy to see when processes aren't
communicating as you intended, and to get the details you need to fix
the problem.
Barrier Points
TotalView lets you control your MPI processes any way you
like. Special breakpoints called barrier points put you in control of
synchronizing groups of processes at strategic points in your
debugging session. Using barrier points, you won’t lose control
of all your processes – you’re in the driver’s
seat.
Comprehensive Support
TotalView supports many flavors of MPI, such as MPICH, LAM-MPI, and
vendor-specific version. Yours is probably on our list! To find out,
consult our platforms
document.
OpenMP Debugging
OpenMP provides a powerful and easy way to introduce threads-based
parallelism into your program. TotalView brings you the same
advantages in debugging OpenMP programs as it does in MPI. You can
control individual OpenMP threads as you would individual MPI
processes. You can set breakpoints and barriers, which can stop a
single thread or the entire OpenMP program.
Using TotalView’s “laminate” command, you can
view common variables across all threads in your process, just as you
can across all the processes of an MPI group.
Mixed MPI and OpenMP Support
Some developers are using both OpenMP with MPI in the same
application, a technique called "hybrid programming." TotalView
handles hybrid programs as easily as it handles non-hybrid MPI or
OpenMP programs. Chapter 6 of the TotalView Users Guide has more
information on debugging OpenMP programs.