PTLIB Review of XMPI

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

Performance

Acceptable monitoring overhead
N/A

Intrusion compensation
No.

Acceptable response time
Yes, it seems very fast and you do not have long pauses while it sets things up.

Memory/disk requirements
Very small it uses less than 1 meg of space (without Lam distribution) This includes all the object files and binaries as well.

Scalable data collection
N/A

Scalable data presentation
Yes.

Versatility

Languages/programming models/ communication libaries supported
MPI but must be the lam version.

Runs on currently popular platforms
Currently works on DEC OSF/1 V2.0, HP HP-UX, IBM AIX, SGI IRIX, SUN SunOS, SUN Solaris.

Platform dependencies isolated
No.

Support for heterogeneous environment
Yes, supports the heterogeneous mixtures that LAM does.

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

Uses SDDF
No.

Change/customize/add new views easily
No.

Ease of Use

Documentation
Very little documentation comes with xmpi at all. It gives you an installation guide, a report on what the sample programs are good at demonstrating, and on their webpage a very brief overview. They do however have an execellent man page that does a good job of describing xmpi in detail.

Ease of installation
Was easy to install but you must have Lam60 installed, as well as have the Motif libraries.

Command-line interface
No.

Window-based interface
Yes, uses the motif libraries to bring up the windows.

GUI common look-and-feel (OSF/Motif Style Guide)
Yes.

Privilege-free installation
Yes, this requires no special privilages to install.

Reports information at source code level
No.

Automated instrumentation
No.

Compile without special linking
Yes, it requires no linking to your application for it to run. (Besides the required mpi linking)

Maturity

Runs without crashing the monitored program
Yes, it did not crash the programs.

Reports and recovers from error conditions
Yes, it seems to catch most of the errors and recovers from them by letting you know the error and then asking you to press continue.

Capabilities

Support for multiple threads per node
No.

Presents different levels of abstraction, from global to individual threads, procedures, or data structures
Yes, you can see the overview of communication or zoom in and see message tags, communicators and other information about particular processes.

Single point control for parallel debugging
N/A

Attach/detach to/from running program
No.

Breakpoints and data watchpoints
No.

Program state examination
N/A

Program state modification
N/A

Event tracing mechanism
Yes, traces it through lamtrace.

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, you can monitor the program and produce a trace file as well

Post-mortem analysis
Yes.

Profiling at level of subprocedures and coarse blocks
No.

Utilization display (communications/idle/IO/computation)
No.

Performance prediction
N/A

Comparisons between different runs
No.

Other

Commercial/research
Research

Cost
Free

Webpage
http://www.osc.edu/Lam/lam/xmpi.html

Version Date
April 1996

Version
2.0

Email
lam@tbag.osc.edu

Required Libraries
Motif

Summary

While I found that XMPI could be useful I found that it had several drawbacks. The first drawback is that it only works with the LAM60 MPI version, unless you use the trace feature. Also the documentation is scant at best. However they do make up for the documentation with an execellent man page that describes using XMPI very well. I would have liked to have a user guide and a tutorial to come with it. The good points is that it was very small, around 1 meg, and it did monitor the messages well. I liked the nice feature of being able to monitor particular processes. This opens a window that you can see the communicator, tag and cnt of the unreceived messages. Although the stoplight pictures that give you an overview of processes and messages at a glance, I did not find it that usefull. However, the timeline did come in very handy. As they say in the documentation this tool is excellent as a teaching aid. For use in debugging/performance uses, I think that it is usefull if message tags or communicators are wrong. But it does not have the flexibility to find the allusive problems.

Ratings (Worse 1 ... 5 Better)

Click here to view a screen shot
Reviewed by Kevin London, london@cs.utk.edu
August 23, 1996