next up previous
Next: Examples Up: Instrumentation and Visualization Previous: Communication Analysis

Visualizing Performance with Carnival

Carnival presents performance profiles and waiting time analysis in the context of the source code. It helps the user quickly identify where in the source code a program spends the majority of its execution time, and where in the code important sources of parallel overhead are introduced.

The primary Carnival display window (Figure 1a) is divided into two parts. The source code (with line numbers) is presented on the right; information about each scope in the source code appears on the left. The line numbers are presented in a grey scale, where the intensity of the scale represents the percentage of execution time (summed across all processors) spent on a given line of source code. Users can quickly identify places in the code where the most time is spent by scrolling down the line numbers looking for the darkest portion of the scale. Carnival also provides other profiling displays, as described in [11].

Two pop-up windows are used for waiting time analysis. The WT Map (Figures 1b and 2b) provides a global perspective of all sources of waiting time; the Characterization Map (Figures 1c and 2c) presents an explanation for a single source of waiting time in terms of the two execution paths involved.

The WT Map lists each source of waiting time, the line number at which waiting occurred, the name of the scope involved, and the percentage of the total waiting time associated with that scope. The color-coded bar indicates the nature of the overheads that are causing the waiting time at that scope, such as load imbalance (LI), insufficient parallelism (IP), and communication and contention (CC). This map is used to navigate within the source code window and to initiate waiting time analysis. Clicking on an entry in the WT Map causes the main display window to shift to the relevant portion of the source code, and the WT Map presents statistics about each cause of that waiting time. These statistics include the percentage contribution of each cause to the total waiting time experienced at that statement, as well as the total waiting time explained by each cause.

Clicking on a characterization in the WT Map produces an explanation for that waiting time in the Characterization Map. Color-coded operations for the longer of the two paths are presented on the right side of the window, operations for the shorter path are on the left. The number of occurrences of each operations is given, as is the percentage of the waiting time associated with each scope. Clicking on an scope shifts the source code window to the relevant portion of the code.

The programmer inspects the results of communication analysis via the CA windows (Figure 2a), where information about a variable (or set of pages) is organized in a table form.

Each causality graph is represented as an incidence matrix, where the column header identifies the access pattern (using a color code), the source code location of the faults (R for request, I for invalidation, and W for preceding writes), and the percentage of total page fault cost in the graph associated with that node. The entries quantify the relative frequency of transitions between nodes in the graph. It is also possible to obtain per-processor information by clicking on the top of each column.


next up previous
Next: Examples Up: Instrumentation and Visualization Previous: Communication Analysis

Wagner Meira
Mon Dec 16 23:02:14 EST 1996