This project involves a set of animation views that we have
developed for illustrating the execution of Pthread programs on
KSR parallel machines. The animations depict the individual
threads and their movement through the functions of the program, and
it shows other program features such as barriers and mutexes.
Included below are some sample views from the library.
This software is available via anonymous FTP from
ftp.cc.gatech.edu
under pub/people/stasko .
The support platforms required for this are a KSR machine for gathering
program data, and a UNIX workstation running the X Window System with Motif
and a C++ compiler with templates, for the animation library. From the FTP
site mentioned above, you will need to retrieve the files
gthread.KSRtracing.tar.Z and
gthread.Animations.tar.Z .
The visualization program is implemented using
the POLKA Animation Designer's Package.
The thread view lists the threads executing in the program. A thread is
running when the corresponding icon is fully colored. It is idle if the
icon is half colored. When the thread terminates, the icon turns
black. And when the thread is detached and becomes unavailable, the
icon goes away.
The history view shows the execution history of each thread. An arrow
pointing to the head (left end of the icon) of a thread indicates the
creation of this thread. An arrow pointing out from the tail (right end
of the icon) of a thread indicates that it is joined by another
thread.
The lifetime of a thread is divided into segments each corresponds to a
period of time it executes in a function. A small arrow in a segment
pointing to the right stands for a function invocation. A small arrow
pointing to the left stands for a function return.
The function view dynamically constructs the program call graph when
threads are forked, functions are called, and the point of execution of
a thread moves from function to function.
When a thread is trying to lock a mutex, it is drawn beside the mutex
in the mutex view. When it gets the lock, it moves into the center of
the mutex. The thread leaves the view when it unlocks the mutex.
The barrier view shows a history of barrier check-in and check-out
transactions. If a thread is drawn in full size, it is participating in
the corresponding synchronization phase. Otherwise it marks the
activity done in the past. A new barrier box is generated when there is
a new phase of check-in / check-out, and the scene scrolls up.
Questions or comments? Email
gvu-webmaster@cc.gatech.edu.
|