Full Workflow Step Descriptions

You may want to look at the Full Workflow Diagram while reading this topic. Before you begin, you should have read the Key Concepts.

Workflow Step

Description

Choose and build a target

You select the target executable that will be analyzed by Intel Advisor tools to predict its parallel behavior.

Discover parallel opportunities

Run the Survey tool to understand where adding parallelism can provide substantial performance improvements. The Survey tool runs and examines your running program. It does not require Intel Advisor annotations.

Choose and mark the best parallel opportunities

You choose the best places to add parallelism by selecting one or more parallel sites. Each parallel site contains one or more parallel tasks. To mark the sites and tasks, you use the Microsoft Visual Studio* or a different code editor to insert annotations into your source code. You also need to configure the include path and reference the annotations definition file.

Check performance implications

Run the Suitability tool with your program to predict the performance for the annotated sites and their tasks. The Suitability tool runs and examines your program. It uses annotations to predict your serial program executable's parallel behavior.

Examine potential correctness problems.

Run the Correctness tool with your program to predict the data sharing problems for the annotated sites and their tasks. The Correctness tool runs and examines your program. It uses annotations to predict your serial program executable's parallel behavior.

Decide on the proposed tasks

Before you modify your serial program to use parallelism, use the Annotation Report window to decide on the proposed sites and their tasks. For each site, the Summary window lets you view the predicted performance benefit and data sharing problems side-by-side.

Fix sharing problems

If the Correctness tool reports data sharing problems, you need to fix them before you add parallelism. Data sharing problems can be fixed by using one of these methods:

  • Use synchronization to control access to the shared data. In this case, you insert lock annotations to indicate where parallel locking code will be added later.

  • If the data sharing was incidental or accidental, you can privatize the use of the shared data. In this case, the program is modified and lock annotations are not needed.

  • Split the tasks in a single parallel site into two parallel sites. This forces all of the tasks in the first site to complete before the second site begins. This method enforces ordering constraints between these two sets of tasks.

Check program correctness

Run the Correctness tool to verify that all reported data sharing problems have been fixed, and run the Suitability tool again. Also, you need to build and test the modified serial program to verify that it still produces the correct results.

Add parallelism

Choose a parallel framework to implement parallelism. Replace annotations with Intel® TBB, OpenMP*, or Intel® Cilk™ Plus code to introduce parallel execution and locks. As you replace annotations, use the Annotation Report window help you locate the annotations. This step enables the program to execute the tasks in parallel.

Next steps for parallel program

You should verify that the parallel program behaves as expected and its performance characteristics match your expectations from the Suitability Report. Use Intel® Parallel Studio XE 2013, Intel® Cluster Studio XE 2013, or similar Intel software suite tools to test and tune your parallel program.

See Also


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