Newsgroups: comp.parallel.mpi
From: nevin@alex.osc.edu (Nick Nevin)
Subject: XMPI 2.0 is now available
Organization: Ohio Supercomputer Center
Date: 17 Apr 1996 14:38:18 -0400
Message-ID: <vn2hguiu25h.fsf@alex.osc.edu>


Ohio Supercomputer Center has released XMPI 2.0, a second generation
run/debug graphical user interface for MPI.  A longer, illustrated
description of the tool is found at http://www.osc.edu/lam.html.
XMPI is an X11/Motif program.

XMPI acquires and displays extensive detail on an application's
MPI communication, including the following:

	o process synchronization status: running, system or blocked
	o message queue contents
	o source, destination, root ranks
	o MPI function name
	o communicator
	o datatype
	o message count
	o tag

New to XMPI 2.0 are the following MPI details:

	o datatype type map
	o intercommunicator and intracommunicator group membership

The above information is acquired from on-demand snapshots of application
status using debugging hooks in the MPI implementation or from a trace log
of communication activity.  The latter method is new to XMPI 2.0.
Some of the information is presented in the application overview window
(the main XMPI window) and the rest is available in process focus popups.

The trace log, being cumulative over time, is visualized in two windows,
new to XMPI 2.0, but commonly seen in performance visualization tools.
The timeline window is the usual horizontal chart of process state changes
with interconnecting arrows depicting message exchange.  The kiviat
window is a radial chart showing cumulative time spent in each synchronization
state for each process.

Relatively unique to XMPI is how the trace visualizations are tied into
the MPI detail snapshot displays.  A dial in the timeline window selects
a snapshot time.  Complete MPI details are presented in the snapshot
windows for all processes, _including_ message queue information, _as if_
a snapshot had been taken of the application at that point in time.

Trace data can be unloaded from the MPI application at runtime or post-mortem.

-=-

XMPI is a great tool for teaching MPI in a hands-on setting.  Students
run example code and can see and verify each MPI operation.  XMPI has
an application "wizard" to help assemble programs and assign processors
to MIMD and SPMD applications.  Furthermore, it is not tedious to generate,
acquire and display information.  A typical development cycle begins
by assembling an application and continues in the following way.

	o press the snapshot button to see what's going on now
	o popup focus windows for a few interesting processes
	o press the snapshot button a few (or a few dozen!) more times
	o see the application completed, hung, deadlocked, whatever
	o press the trace button once and the timeline window is displayed
	o review the previous execution with trace log snapshots
	o make application changes and press the rerun button

No recompiles or special libraries are required to snapshot the application
or obtain a trace log.

-=-

XMPI 2.0 can be obtained from ftp://ftp.osc.edu/pub/lam or from
http://www.osc.edu/lam.html.  It is supported on the following platforms:

	o DEC, OSF/1 V3.2
	o HP, HP-UX 10.01 
	o IBM, AIX v3r2
	o SGI, IRIX 5.3, 6.1
	o Sun, SunOS 4.1.3
	o Sun, Solaris 5.4

In addition to the full source code release, binary releases for each
of the above systems are available for quick installation.  For evaluation
purposes, XMPI will run and display trace logs (examples included) without
the presence of MPI.


-=-
Nick Nevin				nevin@osc.edu
Ohio Supercomputer Center		http://www.osc.edu/lam.html


