GVU Home Research Education People Labs News & Events
Research Animation FAQ-Search-Sitemap-Feedback PVaniM

PVaniM Home Page

SV Home Page

SV Publications

Quick Links:

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.


Research | Education | People | Labs | News & Events

Questions or Comments? Visit our FAQ and Feedback Pages. Last Modified on .