XPVM: A Graphical Console and Monitor for PVM

XPVM provides a graphical interface to the PVM console commands and information, along with several animated views to monitor the execution of PVM programs. These views provide information about the interactions among tasks in a parallel PVM program, to assist in debugging and performance tuning.

To analyze a program using XPVM, a user need only compile their program using the PVM library, version 3.3 or later, which has been instrumented to capture tracing information at run-time. Then, any task spawned from XPVM will return trace event information, for analysis in real time, or for post-mortem playback from saved trace files.

Console Commands

XPVM provides "point-and-click" access to the PVM console commands. A pull-down menu allows users to add or delete hosts to configure the virtual machine. Tasks can be spawned using a dialog box that prompts for all spawn options, including the trace mask to determine which PVM routines to trace for XPVM.

XPVM Monitor Views

XPVM serves as a real time performance monitor for PVM tasks. Tasks spawned from XPVM automatically send back trace events that describe any desired PVM activity. User programs need not be recompiled or annotated for tracing, as the PVM 3.3 library has a built-in tracing facility. The monitor views scroll and zoom in unison and are time correlated, allowing the user to more easily compare different information about a particular occurrence in the program execution.

Network View

The Network View displays high-level activity on the hosts in the Virtual Machine. Each host is represented by an icon image which includes the architecture and name of the host. These icons are illuminated in different colors to indicate the status of the tasks running on each host.

The "Active" color implies that at least one task on that host is busy executing useful work. The "System" color means that no tasks are busy executing user computation, but that at least one task is busy executing PVM system routines. When there are no tasks on a given hosts, its icon is left uncolored, or white. The specific colors used in each case default to green for active and yellow for system, but are user customizable.

Space-Time View

The Space-Time View shows the status of individual tasks as they execute across all hosts. Each task is represented by a horizontal bar along a common time axis, where the color of the bar at each time indicates the state of the task.

The "Computing" color shows those times when the task is busy executing useful user computations. The "Overhead" color marks the places where the task executes PVM system routines for communication, task control, etc. The "Waiting" color indicates those time periods spent waiting for messages from other tasks, i.e. the idle time due to synchronization. Communication activity among tasks is also shown, using lines drawn between the task bars at the corresponding message send and receive times. The default colors for these states are green for computing, yellow for overhead, white for waiting, and red for messages. A vertical, blue line marks the latest trace event time, as shown in the trace control panel "Time" display.

More detailed information regarding specific task states or messages can be extracted from the Space-Time view by clicking and holding on the view area with the Left mouse button. When a task bar is clicked on, the information line at the bottom of the view changes to display the precise times that the task state began and ended, plus info on the PVM system routine that was called at the start of the state (or in some cases perhaps more appropriately the end of the last state). Individual messages can be clicked on as well to determine the time when the send was initiated, and the time when the message receipt was completed, plus the number of bytes sent and the message code. The Space-Time View can also be "zoomed" in or out to view different perspectives on the same trace data.

Utilization View

The Utilization View summarizes the Space-Time View at each time instant, showing the number of tasks Computing, in Overhead, or Waiting for a message at any given time. This information is represented by three colored rectangles, stacked vertically at each time instant, with Computing on the bottom, Overhead in the middle, and Waiting on top. The default colors are green for Computing, yellow for Overhead, and red for Waiting.

The overall utilization for tasks is seen by comparing the relative height of the rectangles over time, such that in cases of good utilization the Computing areas are prominent, and for poor utilization the Overhead and Waiting areas dominate. This view instantaneously scales to the maximum number of tasks encountered, to provide an accurate representation of the utilization.

The Utilization and Space-Time Views are tightly coupled, and share the same horizontal time scale. Entering either view area with the mouse pointer creates a blue time line in both views. This lines identifies the same time instant in each view's display, to help correlate the two representations. The Utilization View is also automagically zoomed in or out to match the Space-Time View's time scale.

XPVM Debugging Features

XPVM provides some simple debugging assistance by listing textual details from trace events and remote task output. Each trace event corresponds to the entry or exit point of a PVM routine, and contains the calling parameters and return codes / results. The task output is automatically collected from tasks spawned by XPVM.

Call Trace and Task Output Views

The trace event information is shown in the Call Trace View, which lists the details of the last trace event received for each PVM task currently executing. This information is updated on-the-fly to always provide the latest information. All task output is shown in a scrolling text view.

Obtaining XPVM / PVM

XPVM is written using the TCL and TK systems (ouster@cs.berkeley.edu), allowing extensibility to include a variety of views. XPVM is a public domain software package, and is available via Netlib in the pvm3/xpvm subdirectory at netlib@ornl.gov. To obtain the latest version of XPVM, click here. You can also obtain the latest version of PVM via Netlib. To obtain, PVM, click here.

Using XPVM

XPVM is built with on-line help menus. PVM programs do not need to be re-compiled to use XPVM (assuming they are using PVM 3.3 or later.)

XPVM will automatically start up PVM on your machine if it is not already running, and users can specify a default list of hosts to include in this start-up configuration, using a ".xpvm_hosts" file in their home directory (see on-line help under "Hosts" in XPVM). There are also several new command line arguments supported in XPVM that allow customized selection of default host files, trace files, and the local machine name (to allow various network interface choices). To see XPVM's command line options, execute "xpvm -HELP" (the "-help" option is predefined for TCL applications :-).


Mail any questions, problems or suggestions to me, Jim Kohl, at kohl@msr.epm.ornl.gov.

Good Luck!