PTLIB Review of XPVM

See the PTLIB Review of Parallel Debuggers and Performance Analyzers which includes this evaluation of XPVM for the review criteria and methodology as well as a comparison with other similar tools.

Performance

Acceptable monitoring overhead
No.

Intrusion compensation
No.

Acceptable response time
Overhead can make response time unacceptable in some cases.

Memory/disk requirements
Only requires 2.6 megs of Hard Drive space.

Scalable data collection
No.

Scalable data presentation
Yes. The user has the ability to zoom in or out while using XPVM's graphical views.

Versatility

Languages/programming models/ communication libaries supported
C and Fortran / PVM

Runs on currently popular platforms
Yes. Sun Sparc, DEC Alpha, IBM R6K, SGI IRIX

Platform dependencies isolated
Yes.

Support for heterogeneous environment
Yes. XPVM has the same heterogeneous environment support allowed by PVM.

Interacts with current or soon-to-be standards (e.g., PVM, MPI, HPF)
Yes.

Uses SDDF
Yes.

Change/customize/add new views easily
The space_time and utilization windows have a zoom feature which allows the user to examine a particular segment of the program more closely.

Ease of Use

Documentation
Clear and concise.

Ease of installation
Moderate (tcl/tk version must be setup correctly, etc.).

Command-line interface
N/A

Window-based interface
Excellent X-windows based interface.

GUI common look-and-feel (OSF/Motif Style Guide)
Yes. The windows behave as the user would expect.

Privilege-free installation
Yes.

Reports information at source code level
PVM calls can be observed as they are invoked, but XPVM is not a debugger.

Automated instrumentation
Yes.

Compile without special linking
Yes. No linking required beyond the linking necessary for any PVM applications.

Maturity

Runs without crashing the monitored program
Yes. Does not crash monitored program.

Reports and recovers from error conditions
No.

Support
It is supported and response times are quick.

Capabilities

Support for multiple threads per node
No.

Presents different levels of abstraction, from global to individual threads, procedures, or data structures
Does not allow the user to view at the procedure or data structure level. However, the user is able to view each process' call to PVM routines.

Single point control for parallel debugging
Yes. Although XPVM is NOT a parallel debugger, the call_trace monitoring window is quite useful for debugging.

Attach/detach to/from running program
No.

Breakpoints and data watchpoints
No.

Program state examination
No.

Program state modification
No.

Event tracing mechanism
Yes. XPVM creates a tracefile which may be replayed instead of executing the program again.

Cache and memory reference tracking/display
No.

Remote data access pattern analysis
No.

Message tracing/display
Yes.

Input/output characterization
No.

Real-time monitoring
Yes.

Post-mortem analysis
Yes.

Profiling at level of subprocedures and coarse blocks
No.

Utilization display (communications/idle/IO/computation)
Yes. XPVM features both space_time and utilization monitoring windows. The space_time window allows the user the view the status of each task by viewing its horizontal bar representation. The utilization window simply displays the aggregate number of tasks in any particular state (computation, overhead, or waiting).

Performance prediction
No.

Comparisons between different runs
No.

Other

Commercial/research
Research.

Cost
Freely available.

Software Obtained

Location
http://unix.hensa.ac.uk/netlib/pvm3/xpvm

Date
Early August, 1996

Version
Version 1.1.1

Summary

XPVM is a quite useful and user-friendly version of PVM that runs under X-windows and includes both monitoring and debugging features. The user is able to add or delete machines dynamically from his/her virtual machine just as with PVM. XPVM also has a Network View window which shows each of the machines in the virtual machine (with a different picture for each unique architecture supported) and gives each of these pictures a color representing the state of that machine (active/system/no tasks). In addition to this window, XPVM has several other views for monitoring a parallel program (space_time (timeline), utilization, call_trace, etc.). The call_trace window can be quite useful for debugging purposes. Combining these attributes with the fact that XPVM can do both run-time and post-mortem analysis, most users would find XPVM to be a robust and useful tool for monitoring/debugging parallel code.

Ratings (Worse 1 ... 5 Better)

Click here to view a screen shot
Reviewed by Chris Hastings, hastings@cs.utk.edu
Aug. 13, 1996