| |
DEEP program analysis tools allow use of both compile-time information (gathered by
the instrumenter) and run-time information (gathered by a run-time profiling library) to
investigate a parallel program in more detail. In analyzing a program
with the DEEP system you would normally start with the tools that look at
the whole program, identify procedures of interest, and then drill down with tools that
look at the internal structure of these individual procedures.
A typical program analysis session might proceed as follows:
-
Start with whole program data, such as the chart of wallclock time used by
procedures.
-
Identify bottleneck procedures, using charts, tables and high-level views. For
example, one function may use 50% of the wallclock time.
-
Move to details for procedure. You can do most easily this by clicking on a
procedure row in any of the procedure tables. This will create additional pages of
information that relate to that procedure.
-
Examine displays for the selected procedure, including the code abstraction and loop
performance pages.
-
Identify run-time problems. Examine the MPI Call Site Summary to see what MPI
calls may constitute a bottleneck.
-
Move to source code. This can be done by clicking on important loops in the code
abstraction or loop performance tables or MPI call sites in the call site table.
-
Remove bottlenecks. Restructure the source code. Start your own editor and modify
the code.
-
Recompile.
-
Run again and look at the changes in the performance profile. Keep doing this until
you are satisfied with the performance.
|