Using TotalView®
TotalView is an extremely powerful parallel programming debugging tool
developed by Etnus.
Today, at UM - St. Louis, it is only available on our teaching cluster
voyager.umsl.edu. Etnus has been kind enough to provide
sets of manuals which are available for
on-site checkout
in various Instructional Computing facilities around campus. There are also a number of good on-line tutorials and help pages available.
For example,
- Etnus' Getting Started
- Etnus' QuickView
- The Laurence Livermore National Laboratory Tutorial
Because of its rich feature set, the best way to become
familar withTotal View is go through specific debugging exercises
with manuals close at hand. The notes and images below are simply meant to serve
as a set of review notes for the in-class demonstration.
Makefile
This Makefile records various frequently issued commands. I find it a convienent way
to work.
------------------------------------------------------------------------------
NAME=
PCOUNT= 4
TVMACHINES=tvmachines
APPLIBS = -lm $(EXTRAS)
EXTRAS=
all:
gcc -g -o $(NAME) $(NAME).c -lsprng -lgmp -lm $(EXTRAS)
mpi:
mpicc -g -o $(NAME) $(NAME).c -lsprng -lgmp $(APPLIBS)
tv:
mpirun -dbg=totalview -np $(PCOUNT) -machinefile $(TVMACHINES) $(NAME)
kill:
cluster-fork killall -9 $(NAME)
killall -9 $(NAME)
-----------------------------------------------------------------------------
After
make tv Name=pirules
the following windows appear
Clicking on "43" produces a breakpoint at that line.
The window on the right appears after Clicking "Go"
This is what one sees after accepting "No" and opening the item associated the Process with ID=1.
After
- "Dive in New Window"
- Changing "Group" stepping to individual stepping. We get
We can now step through each process independently.
Standard I/O is handled through the console window.
Bringing up the Tools>Evaluate window and evaluating the Expression buffer[0] produces the expected result;
We can also use the Evaluate window to modify the original input.