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
2Visualizing the Execution of PVM Programs
The idea of providing toolsvisualizing the communication and synchronization behavior of parallel programs is not new.For PVM,a couple of such tools already do exist.Some examples are XPVM[5,2],ParaGraph[7,6],HeNCE[1],and Trapper[14].However, these tools do not adequately address several problems,whose solution has been a primary design goal of VISTOP.
First,most of these systems only display an event stream,usually as a space-time diagram.From such a representation,it is,however,difficult to get information on a program’s global state,e.g.the tasks blocked in receive requests,members of groups, contents of the tasks’receive queues,or information on barriers.VISTOP computes an internal model of a program’s global state from the stream of events by including knowledge about the semantics of PVM.For instance,the members of a group are computed from“joingroup”and“leavegroup”events.Therefore,VISTOP can display global states instead of events.The model can also detect certain errors,e.g.if a message is unpacked incorrectly.
A second issue is consistency of visualization.Event visualization tools usually display events in the order in which they are received by the tool.However,due to local buffering and network delays,this strategy can lead to a visualization violating causality. VISTOP addresses this problem by sorting the received events in such a way that causal relationships are satisfied and consistency with the modeled state is guaranteed.
Finally,existing visualizers offer only limited scalability.Space-time diagrams use one line for each PVM task;some tools do not even allow these lines to be reordered. VISTOP allows to freely select the objects to be visualized and to rearrange them in the display area.It also supports a hierarchical visualization at different levels of abstraction by allowing tasks to be grouped together into a hierarchy of container objects according to the application’s logical structure.
VISTOP visualizes a program’s execution as a sequence of snapshots where each snapshot shows different views of the program’s global state.A control panel allows forward or backward stepping through the sequence of snapshots,and a continuous play mode with selectable speed.The transitions between different snapshots are animated in order to accentuate the state change.Currently,the visualizer provides three different views of program state:
1.The concurrency view displays a dynamic,hierarchical task graph showing com-
munication and synchronization between tasks.The nodes of this graph represent objects of the programming model(tasks,barriers)or container objects(subgraphs of the program).Arcs denote interaction between objects.The left side of Fig.1 shows a screen dump of this view that is described in more detail below.
2.The object creation view displays the dynamic creation graph of tasks spawned
and terminated during runtime.It consists of trees,whose root nodes are the initial tasks spawned by the PVM console.Other nodes represent tasks spawned during run-time;the parent entry defines the spawning task.An example of this view is shown in the upper right part of Fig.1.
3.The system view shows the distribution of tasks over the different hosts.The display
is organized as a matrix where each column contains all objects located on one host.