Xab [Beg93] provides a simple monitoring tool recording and displaying event traces of PVM programs. In general, each event represents a call to a PVM function, e.g. pvm_send. Some calls, like pvm_barrier, generate two events, one at the beginning and another at the end of the call.
Events are monitored by using a special library containing instrumented PVM functions. For programs written in C, macros are used to replace the PVM calls by calls to the instrumented functions, so the programs have to be recompiled for use with Xab. For Fortran programs, an adapted interface library is available, so relinking is sufficient in this case. Once an event is detected, it is sent to a central monitor process, called abmon. The abmon process may either pipe the events to the Xab event display tool or store it in a trace file for off-line analysis. Xab itself is a simple X-window based tool for viewing traces, displaying events in a textual form. A control panel allows to view events in a continuous play mode with selectable speed or in single steps.
Since Xab uses the standard PVM communication for sending events to the monitor process, the system is fully platform-independent. Furthermore, a filter is provided for translating the traces to the PICL-format, allowing to use ParaGraph [HE91]. However, the central monitor process easily becomes a bottleneck for large applications, so the system is not scalable. In addition, abmon does not regard causal relationships between events, but simply stores them in the order in which they are received. Thus, the trace file may not always provide a consistent view of the monitored computation.