Intel Advisor provides tools that analyze your running serial program to collect and present data. These tools help you make decisions about adding parallelism to your program.
Where should I add parallelism? To locate where your program spends its time, run the Survey tool to profile your serial program (Release build suggested). View the Survey Report to identify at least one possible parallel code region (site).
How do I tell Intel Advisor tools where I might add parallelism? Modify your sources to insert Intel Advisor annotations to identify the best opportunities for parallel task(s) within the enclosing parallel site.
Who modifies the source code? Because you understand your program, you modify its sources. Intel Advisor helps you simplify inserting annotations and including the annotation definitions file. Later, you will modify sources as you transition your serial program into a parallel program.
Now that I added site and task annotations, what's next? Intel Advisor provides two tools that focus on the annotated parts of your program. These tools predict (model) your program's parallel behavior so you can experiment to find parallel sites with a good performance gain and sharing problems that you can fix:
The Suitability tool samples your running program (Release build suggested) to determine the approximate performance of the parallel sites and tasks.
The Correctness tool watches your running program (Debug build recommended) in minute detail to predict and locate potential data sharing problems. Intel recommends using a reduced, representative data set. Use the Correctness Report to explore and understand the problems. Modify your sources so your parallel code will execute correctly.
My parallel site has a good performance gain and I fixed the data sharing problems. What's next?
After you modify sources, run the Suitability and Correctness tools again. If you agree with the data displayed in the Summary window, you can replace annotations with parallel framework code. Select a parallel framework, such as Intel Threading Building Blocks, Intel Cilk Plus, OpenMP and use the Annotation Report window to quickly locate each annotation in your sources and replace it with parallel framework code. Rebuild and test your parallel program.