Intel® Advisor Help

Window: Survey Report, Loop Row

A Loop row indicates that a loop exists at this location. In most programs, loops consume the most CPU time. The Survey Report presents a top-down extended call stack where each function or loop appears on a separate line. To quickly identify the most time-consuming loops, look for checkmark in the Hot Loops column. Identify parts of the loops or functions that use significant CPU time, such as a CPU-intensive (hot) loop. The Total Time is the execution time within iterations of this loop.

The Self Time column shows the CPU time used by that function or loop. The Total Time shows the running total for the program starting at 100%. The functions or loops where the Total Time decreases significantly should have a significant Self Time value. Such functions or loops are places where your program spends much it time - the hot code regions. Locate the regions that use significant CPU time and examine those code regions and the functions that call them as candidates for parallel execution.

Often a loop is a good place to exploit parallel execution. If the Total Time in this loop is too small, consider choosing a loop further up the call tree with a larger Total Time. If you believe this loop has too many serial dependencies, choose an inner loop in the call tree.

If a loop cannot be parallelized locally in the loop, consider task-based parallel execution created by doing multiple calls from within the loop as separate tasks.

To learn how to use the Survey Report window, read Viewing Data from the Survey Tool.

Next Step: Decide Where to Add Annotations

To propose parallel code regions where you might use parallelism, add annotations into your sources. Intel Advisor Suitability and Dependencies tools use these annotations to predict the likely parallel characteristics of your program. Each parallel code region (site) executes one or more tasks, where each task's work can be divided up safely amongst multiple cores.

If you are not familiar with Intel Advisor annotations, read the topic 2. Annotate Sources. You can use the annotation assistant pane to help you add parallel site and task annotations.

The Impact of Parallel Code on Self Time Values

In the Survey Report, if a function or loop already uses parallel execution, the Self Time is the sum of the CPU time for all threads (see Using Partially Parallel Programs with Intel Advisor Tools). However, because of tool limitations, much of the time used by parallel code may be added to the wrong places ( Intel Advisor's primary purpose is to analyze serial code). For example, Self Time may be added to the parallel framework run-time system entry points instead of the caller(s) in the thread that entered the parallel region.

See Also