CUBE is a graphical browser suitable for displaying a wide variety of performance measurements for parallel programs including MPI and OpenMP applications (Figure 1). The performance is displayed along three hierarchical dimensions (i) performance metric, (ii) call path, and (ii) process or thread. In this way, the user can identify the type of performance problem, its location in the program's control flow, and the processes and threads that are affected.
As an example, Figure 1 shows the display of KOJAK analysis results for an MPI application simulating solute transport in heterogeneous soil-aquifer systems. KOJAK has identified a performance problem called Late Sender (left), which describes a situation where a process enters a wait state as the result of an attempt to receive a message too early. The middle dimension shows where the problem appears in the
call tree, while the right dimension shows the distribution of wait states across different processes. The display provides scalability in two ways: (i) aggregation of performance metrics within individual dimensions and (ii) across different dimensions. All performance metrics are uniformly accommodated in the same display and thus
provide the ability to easily compare the effects of different kinds of performance behavior.
|
Figure 1: CUBE display
|