Intel® Advisor Help
A Function row indicates that this is a call site inside of the named function. The Survey Report presents a top-down extended call stack where each function or loop appears on a separate line. The Total Time is the fraction of the execution time originating from the call tree invoked by this call site.
It is usually easier to exploit parallel execution within a loop. If a loop row is near this function row, the loop row may be a better place to introduce a parallel site.
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 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 of its time, or the program's hot code regions. Locate the code regions that use significant CPU time and examine those regions and the functions that call them as candidates for parallel execution.
If you are exploring coarse-grain task-based parallel execution, consider choosing several function calls as tasks to be enclosed in a parallel site.
To learn how to use the Survey Report window, read Viewing Data from the Survey Tool.
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.
In the Survey Report, if a function or loop already uses parallelism, 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 (the tools' primarily 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.