Abstract. Understanding the dynamic behavior of parallel programs is a critical issue both for debugging and for optimization. A visualization tool displaying an animated sequence of the global states the program runs through offers valuable support for th
of the computed global state.In the following,we will provide some more information on thefirst two layers and the issue of sorting events to achieve a consistent visualization.
3.2Data acquisition
The task of this layer is to monitor relevant events in an executing application,to store these events,and to forward them to the modeling layer in the correct order.In thefinal release of VISTOP,this layer will make use of an OMIS compliant on-line monitoring system.OMIS is an emerging On-line Monitoring Interface Specification defined in a cooperation between our laboratory and Emory University[13,11].The monitoring system detects the relevant events in each PVM task,buffers these events in local trace buffers and forwards the buffers to the tool either periodically or upon request.It also provides mechanisms for other tools,e.g.a parallel debugger,to attach to the application concurrently to the visualizer.In such a case,services of the monitoring system can inform the visualizer on relevant modifications done by other tools.Thus, the visualizer can instruct the monitoring system toflush its trace buffers when the application is stopped by a debugger,and can correctly display its state at the breakpoint. Furthermore,the on-line monitoring system offers services to obtain state information of an application.This allows the visualizer to be started at some breakpoint,which requires to initialize its state model with the application’s current state.
However,as the monitoring system is not fully implemented yet,the data acquisition layer currently works with the trace facility integrated into the PVM library since PVM 3.3.It allows to obtain a trace of PVM library calls usually containing one event entry for the call and its input parameters and one for the return and the result parameters.For portability reasons,we do not receive the traced events directly from the PVM system, but read thefiles written by XPVM,which use the standardized SDDF trace format. However,the traces do not fully support the needs of state oriented visualization tools.
There are currently two major limitations we had to overcome.First,the event indicating the execution of a broadcast only specifies the group where the broadcast is sent to.But for a correct visualization it is important to know to which tasks the message has actually been sent.We therefore have slightly modified the PVM library,so that this information is included in the event trace.
Another limitation is that the PVM tracing mechanism does not record an event when a message is inserted into a task’s receive queue.For the modeling of global states,this has three consequences:
1.The VISTOP animation is designed to show whether a task blocks in a receive call
due to an empty message queue.Without the event,this is not possible,since we do not know the point in time,when a message is put into the queue.As a current solution,we assume that messages are inserted as soon as the senderfinishes the send operation.
2.The receive queue of a task cannot be computed accurately.All the model can
provide is a set of receivable messages.It cannot determine the order in which messages are stored in the queue.