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,
  1. Etnus' Getting Started
  2. Etnus' QuickView
  3. 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
  1. "Dive in New Window"

  2. 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.