next up previous
Next: Conclusions and Future Work Up: Some Program Visualization Systems Previous: Ravel

Wamtrace

Wamtrace[3] is at the high-level programming system layer, since it is tied to a particular programming system.


  
Figure 4: Wamtrace
5#5

It is portable across machines, but specialized to one particular parallel programming mechanism, the Aurora parallel Prolog system[7]. Its logging mechanism does not depend on a microsecond timer, but rather uses shared memory to sequence events in a pair of buffers. Events are buffered by a separate process, and written to a file concurrently with program execution as the internal buffers fill up. Thus there is no strict limit to the number of events that can be logged. The events logged are ``system'' events of importance to the behavior of parallel Prolog programs: the creation and elimination of parallel choice points, and the execution of parallel alternatives emanating from those choice points. (It is also possible for the user to log events from the Prolog program being executed, but graphical interpretation of them requires modifying the wamtrace program itself.) These events are displayed dynamically, with a dynamically changing tree-shaped representation of the Prolog computation, with representations of the processes exploring it moving around on the tree in an illustration of the dispatching strategy. Wamtrace has been used both for tuning the Aurora system and for understanding the behavior of application programs.

Wamtrace was chronologically the first of the three systems described in this paper. It was developed in conjunction with the research into various dispatching strategies for Aurora.


next up previous
Next: Conclusions and Future Work Up: Some Program Visualization Systems Previous: Ravel
Karen D. Toonen
1998-11-19