Tutorial: Where to Add Parallelism with Intel® Advisor 2015 and a Fortran Sample
The following terms are used throughout this tutorial.
annotation: Intel Advisor annotations are call statements that identify certain information to Intel Advisor tools, such as the location of proposed parallel sites. To insert annotations into your source code, you can copy code snippets from the annotation assistant pane into your code editor.
data race: A bug that can occur after adding parallelism to parts of your application. A data race occurs when multiple tasks read and write data at a shared memory location without coordinating those read and write operations. This can produce parallel execution errors that are difficult to detect and reproduce. Using the Correctness tool helps you predict and fix likely data races before you add parallelism.
hotspot: A code region that consumes much of your application's run time, such as a loop, and is often a good candidate for parallelism. 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 your application to execute in parallel. Examples for C/C++ include Intel® Threading Building Blocks and Intel® Cilk™ Plus, which are both included with the Intel compiler. The OpenMP* parallel framework for C/C++ and Fortran code is available with multiple compilers.
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 application's 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 tree. 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. In some cases, you can provide synchronization within a task by using a private memory location instead of a shared memory location. In other cases, you can add a lock or mutex to restrict access to shared data and… prevent a data race.
target: An executable file. Intel Advisor tools run with your target executable to collect data and perform analysis about its execution characteristics.
task: A portion of time-consuming code and its data that can be executed in one or more parallel threads to distribute work. One or more tasks execute within a parallel site.