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
Fig.1.Concurrency view and object creation view
We will now present the visualizer’s concurrency view in more detail.The visual-ization patterns used in this view are depicted in Fig.2.When visualizing a snapshot of a program’s execution,each existing PVM task and each active barrier is represented by an icon,which may be slightly modified in color or shape to display some of the object’s local state information(e.g.timeout or error conditions).Interactions are visualized as lines drawn between the objects involved.Additional arrow heads in different shapes and colors on either side of the line specify the kind of interaction:A green(filled) arrow head denotes an interaction that does not block the active partner,while a red (hollow)arrow head denotes a blocking one.The direction of the arrow head indicates the direction of the(requested)information transfer,while its position marks the active partner.In the middle left of Fig.2,task1is sending to task0,since there is afilled arrow head attached to task1and directed towards task0.Broadcasts and multicasts are visualized in an intuitive way by showing that a task sends to multiple tasks at the same time(see task0in Fig.1).The lower left of Fig.2shows the visualization pattern when task4waits for a message from task3.The same pattern is also used for barrier synchronization.In this case,the icon of task3is replaced by a barrier symbol,which is
created when thefirst task in a group calls pvm