Key Terms

The following terms are used throughout this help system:

annotation: Intel Advisor annotations are one-line statements that identify certain information to Intel Advisor tools, such as the location of proposed parallel sites. You can use the Intel Advisor wizard in the Microsoft Visual Studio* code editor or the annotation assistant in the Survey Report or Survey Source windows or the No Data message to add annotations in your source code.

data race: A bug that can be caused by adding parallelism to parts of your program. A data race occurs when multiple instances of a task (or multiple tasks) read and write data at a shared memory location without coordinating those read and write operations. This can produce execution errors that are difficult to detect and reproduce.

hotspot: A small code region that consumes much of the program's run time. Hotspots can be identified by a profiler, such as the Intel Advisor Survey tool or the Intel® VTune™ Amplifier.

parallel framework: A combination of libraries, language features, or other software techniques that enable code for a program to execute in parallel. Examples include Intel® Threading Building Blocks and Intel® Cilk™ Plus, which are both included with Intel® Composer XE. Another parallel framework is OpenMP*, which is available with multiple compilers. For C# code on Windows* OS, use the Microsoft Task Parallel Library* (TPL). After you find possible places to add parallelism with Intel Advisor, you mark (annotate) parallel sites and their tasks, which are also used by high-level threading frameworks. In contrast, low-level threading APIs like Windows* or POSIX* Threads require that you directly create and control threads.

parallel site: A region of code that contains one or more tasks that may execute in parallel. An effective parallel site typically contains a hotspot that consumes much of your program's CPU time. To distribute these frequently executed instructions to different tasks that can run at the same time, your parallel site is not usually located at the hotspot, but higher in the call graph. For example, a parallel site might be located in a function whose code eventually executes the hotspot. All tasks that were started within a site must complete before execution is allowed to proceed past the end of a site.

synchronization: Coordinating the execution of multiple threads. For example, a lock can be used to restrict access to shared data to prevent a data race.

target: An executable file. The Intel Advisor tools run with your target executable to collect data and perform analysis about its execution characteristics.

task: A portion of code and its data that can be executed in a thread. One or more tasks can execute within a parallel site.

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