next up previous
Next: Generating Traces Up: Parallel Program Execution Visualization Previous: Parallel Program Execution Visualization

Philosophy of atrace

The execution of sequential programs is relatively easy to visualize and understand. Call-graph generators and profilers help to fill in the gaps in a programmer's understanding, but it is not difficult to predict the behavior of a program from a study of its code. Use of such tools may slow the overall execution of the program but will not alter the sequence of program events that take place. The behavior of parallel programs, on the other hand, is notoriously difficult to predict. One's intuition about the sequence of events that will occur once several (or several hundred) independent processes are launched into a complicated synchronization strategy is highly unreliable. Moreover, analysis tools can easily perturb the sequence of events drastically, obscuring the very behavior they are applied to elucidate.

The approach taken here to is provide a low-overhead mechanism for recording precisely a sequence of user-defined events that occur during parallel program execution. The resulting file can then be examined, off-line, in a variety of ways which complement each other. Tying the toolkit together is the common definition of the trace file format, so that such files can be both produced by several different mechanisms embedded in parallel programs and consumed by several different analysis programs.


next up previous
Next: Generating Traces Up: Parallel Program Execution Visualization Previous: Parallel Program Execution Visualization
Karen D. Toonen
1998-11-18