Intel® Advisor provides enables you to analyze non-executed code paths, generated by the Intel Compiler for various instruction set architectures (ISA).
There are two rules of optimization that apply to parallel programming:
Focus on the part of the program that uses the most time.
Do not guess, measure.
The Suitability Report lets you adust modeling parameters based on possible application needs. When using an active result, you can adjust modeling parameters and quickly view the likely impact on the predicted performance interactively.
Intel® Advisor Dependency analysis identifies the following types of data dependencies:
In a serial program, the order of the operations during program execution are known. However, when code executes as multiple parallel tasks, an operation can execute before, after, or simultaneously with an operation in the other task. For example, when parallel tasks access or modify a shared memory location, data sharing problems can occur.
If you find a conflict that cannot be resolved using the above techniques, you should consider the following alternatives.
Merge the two tasks involved in the conflict into a single task.
Divide the tasks into smaller tasks and do the work preceding the conflict in parallel, the work involving the conflict serially, and the work after the conflict in parallel.
Find a different site to introduce parallelism.
OpenMP* is supported by certain versions of the Microsoft Visual C++* compiler, the GNU* compilers, and the Intel compilers:
You can enable multiple functions to run in parallel as two or more tasks. The statements to run in parallel are not limited to function calls (see the help topic Data and Task Parallelism).
When the outermost statements in the annotation site have been placed into tasks, as shown in the following serial example, it is easy to execute them in parallel.
Intel® Advisor helps you:
Discover where to add parallelism to your program by identifying where your program spends its time. You propose parallel code regions when you annotate the parallel sites and tasks.
Predict the performance you might achieve with the proposed parallel code regions.
Predict the data sharing problems that could occur in the proposed parallel code regions.
To add Intel Advisor annotations into your source files on a Linux* system, you can use any text editor. Intel Advisor simplifies the process of locating where to add annotations.
To add Intel Advisor annotations: