Intel® Advisor Annotations and Tools

Intel® Advisor guides you through a sequence of steps in a workflow to help you add parallelism to your program. You work on the serial version of your program, and use the Intel Advisor tools to predict its parallel (multithreaded) behavior.

Certain Intel Advisor tools require that you insert Intel Advisor annotations into those code regions of your program that may execute in parallel. This ability to experiment with potential parallelism helps you determine the feasibility of adding parallelism to parts of your program - before you add parallel code.

The following table summarizes the tools and how they use annotations:

Tool Name and Function Use of Annotations

Survey: This profiling tool helps you identify code regions that use significant CPU time (hotspots). Select time-consuming code regions that could use multiple cores to improve the program's run-time performance.

Does not need or look for annotations.

code editor: Use your code editor to insert, modify, and delete annotations in your source code. You also use the code editor to modify your application to fix predicted shared data problems, and later to replace annotations with parallel framework code to enable parallelism.

Helps you insert or modify annotations.

Suitability: Predicts approximate parallel performance, based on your parallel site and task annotations and application execution measurements. This tool also predicts (models) the approximate performance of an ideal parallel machine, by varying the specified number of cores and the parallel framework. This helps you decide which possible parallel code regions provide the best performance gain.

Requires parallel site and task annotations. Recognizes most annotations.

Correctness: Predicts likely data sharing problems based on the parallel site, task, lock, and other annotations. After you use Survey and Suitability to decide which possible parallel code regions provide the best performance gain, use the Correctness tool to find whether those code regions contain likely data sharing problems. Using this tool helps you investigate whether the detected data sharing conflicts can be fixed. It includes a source view that helps you locate the sharing problems in your source code.

After you modify source code to fix sharing problems or modify annotations, run the Correctness and Suitability tools again so they can predict your revised application's parallel behavior.

Requires parallel site and task annotations. Recognizes all annotations.

When you insert annotations into your source code, you also need to add a source line that includes the annotations definition file. You modify your build script so it knows which directory contains this annotations definition file.

Intel Advisor recommends builds with full debug information and no optimization for the Correctness tool. It suggests builds with debug information and moderate optimization (limited function inlining) for the Survey and Suitability tools.

The Correctness tool executes the target executable using the supplied data or run-time parameters. It watches each instruction that reads or writes to memory. If you full set of data or run-time parameters, running your executable with the Correctness tool would take 50 to several hundred times longer to run than its normal execution time. To obtain reasonable execution times for the Correctness tool, consider minimizing the data set or run-time parameters. For more details, see the help topic Choosing a Small Representative Data Set for the Correctness Tool.

For more complete information about compiler optimizations, see our Optimization Notice.