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
from buffer,only if the following conditions are met:
1.there is no event in an other buffer with(causality)
2.can happen in the currently modeled state of the application(consistency)
By construction,this strategy will never result in an inconsistent visualization,however, it can lead to deadlock or starvation,i.e.cases where no further events can be selected from one or more event buffers.In our example,according to this strategy we could select three events in the sequence.If never joins the group again,we can not select event anymore and therefore also no succeeding event in the buffer of.We therefore use a heuristics guiding the selection based on the following considerations: 1.If there is an event that cannot be processed due to condition2,the modeled state
differs from the state where actually occurred in the program execution.
2.In such a situation,we favor events that make this difference smaller.
3.Events that increase the difference are processed only if there are no other selectable
events.When considering such an event(say),we perform a look-ahead search in the event-buffers to make sure that the“negative effect”of on the modeled state will be undone by a later event in the buffer.We process only if this search is successful.
4.If there are two events and that both could be processed,but would change
the state in a way that inhibits subsequent processing of due to condition2,is processedfirst.
The heuristics ensures that the sorting algorithm will never select events that would result in starvation or deadlock.In our example,it leads to the consistent event sequence .In cases where the heuristics leaves multiple candidates to choose from, which must be concurrent events for which no uniquely defined ordering exists,we use the events’time stamps for selecting the next one being processed.If the events’timely separation is greater than the clock skew between different hosts,this ensures that the events are displayed in the order in which they have been monitored.
4Conclusion and Future Work
VISTOP is a state based visualization system that offers a consistent global view on the execution of PVM applications.Experience with a previous version of this tool[3]for an other message passing library has proved that state based visualization offers valuable help in understanding the dynamic behavior of parallel programs,debugging message passing and synchronization errors,and even for locating performance bottlenecks.
VISTOP is a part of T HE T OOL-S ET for PVM[12],which also will include other tools,such as a parallelfile system,checkpointing and load balancing facilities,a parallel debugger,a performance analyzer and a deterministic execution controller.Future work on the visualizer includes extensions for the support of T HE T OOL-S ET’s automatic components,i.e.an animation of I/O operations using the parallelfile system,and task migrations performed by the load balancer.In addition,we will support a tightly integrated usage of VISTOP with the debugger,the deterministic execution controller and the ing these tools together will allow to start the debugger on any