PVaniM is an enhancement package for PVM 3.3 that produces
animations of the execution of PVM applications. This document
describes the subsystem that shows fine-grained post-mortem
visualizations of PVM applications. Another subsystem, PVaniM 2.0 provides on-line,
low-overhead, minimal perturbation visualizations as well.
PVaniM provides a general purpose set of views that work with all PVM
applications, and provides support for users to build custom
application specific animations. The two main components of PVaniM
are a tracing library and a general purpose set of animations that
work with all PVM applications.
The PVaniM system provides its own robust tracing package for PVM. This
package not only drives the general purpose animations, but also provides
support for user trace events for use with custom application specific
animations. The PVaniM tracing package provides comprehensive
timestamping techniques. PVaniM not only performs clock
synchronization and tachyon removal for its ``wall clock'' timestamp,
but it also provides a pure Lamport logical timestamp as an aid in
determining the concurrency and causality of events that take place in
the application.
The second main component of PVaniM is a general purpose library of
animations that work with all PVM applications. This library was
developed using the the POLKA Animation
Designer's Package, and users may also use this package to develop
their own application specific animations.
Included below are snapshots from the PVaniM system.
All of the PVaniM system is available via anonymous FTP from
ftp.cc.gatech.edu
under pub/people/stasko .
The support platform required for this is a machine running the X
Window System with Motif, and a C++ compiler. From the FTP site
mentioned above, you will need to retrieve the files
pvanimtrace.tar.Z and
pvanimviz.tar.Z .
When users begin a session with PVaniM, they are presented with the PVaniM
Menu, an Information Box, and a Polka Control Panel.
The PVaniM Information Box displays message communication information
that can be acquired by
clicking with the left mouse button on objects in some of the views. The
Polka Control panel allows you to change the speed of the animation, step
through it, or pause the animation. The PVaniM Menu displays the general
purpose views that are currently available.
The History view is the first option available in the PVaniM menu.
This scrolling view maintains a history of messages
that have been sent or received. The Y-axis of this view is labeled with
Lamport clock values with time proceeding from bottom to top.
The X-axis is labeled with process identifiers.
Squares that are associated with message
sends are filled in with dark colors. Lighter colors of the same hue
fill squares that are
associated with the corresponding message receives.
Message size is encoded by filling squares
with various amounts of color. This can be deciphered by using the
History Legend view, the second option listed in the PVaniM Menu.
The third option available in the PVaniM Menu is the Causality View.
This view is a more complex version of a Feynman diagram, and is also
known to many as a Lamport timeline view.
In this view, the Y-axis
is labeled with process identifiers and the X-axis is labeled with Lamport
clock values. When a message is sent, a circle appears at the
appropriate logical time coordinate.
Varying circle radii are used to denote message size and the color of the
circle is the same as that used in the history view. When a message is
delivered, an arrow ``grows'' from the coordinate of where the message
was sent to the correct Lamport delivery time on the receiver's timeline.
Simultaneously, the circle representing the message moves along this path
and then disappears. Arrows may be clicked by the users with the left mouse
button. This will place in the PVaniM Information Box pertinent data
regarding the arrow (which represents a message communication) such as who
sent the message, who received it, its type and length. This view is
similar to the history view in the information it provides, but is
very useful when trying to distinguish communication patterns.
The fourth option available in the PVaniM Menu is the Message Passing view.
In this view, all the processes are laid out around the outside circle.
Messages are represented as circles that smoothly move into the center of
the ring of processes
when sent near and end up in the vicinity of the process that the message is
intended to be received by. At any time messages may be clicked by the
user with the left mouse button. In the PVaniM Information Box will
appear data such as who sent the message, who received it, its type and length.
When a process receives a message, the message moves from its
position in the center of the ring to the process. The color of the message
is the same color as used in the history view. Contrail lines are provided
so that it is clear where the message came from. The user may turn these
lines off if the view becomes too cluttered by clicking on the ``lines off''
button provided in the inside of the Message Passing View.
Further,
the radius of the circles representing messages is proportional
to message size. Messages that are never delivered conspicuously remain
in the center. Also, the smooth animation of message traffic helps portray
actions such as message broadcasts.
The fifth and final option available is the Gant view. This is a famous
ParaGraph view where each process is represented as being computing,
sending a message, or receiving a message. When a message is computing,
a green line is drawn, when it is sending a message, a yellow line is drawn,
and when it is receiving, a red line is drawn. This is a simplistic version
of the ParaGraph view as it automatically provides a time scaling such that
the entire view fits in the Gant window.
|
|
|
|
|