Channels ▼

Gastón Hillar

Dr. Dobb's Bloggers

Intel Parallel Advisor 2011: Expert Advice For Parallelization

September 10, 2010

Intel Parallel Advisor Lite has grown up and its newest version is Intel Parallel Advisor 2011. Part of the Parallel Studio 2011 suite of tools, Advisor provides expert advice for parallelization for Windows C/C++ architects and developers.

Intel Parallel Advisor 2011 is also a unique modeling tool that reduces overall development time.

The new Intel Parallel Advisor 2011 is compatible with Visual Studio 2010 and it adds a new toolbar to the IDE (see Figure 1). You can also use Parallel Advisor with Visual Studio 2008 or 2005. If you work with Visual Studio 2010, you will be able to take advantage of the multi-monitor support to keep the Advisor Workflow Window visible while you learn to use the features offered by this interesting tool.

[Click image to view at full size]
Figure 1: Parallel Advisor 2011's new toolbar.

When you click on the Open Advisor button on the Parallel Advisor 2011 toolbar, the IDE displays the Advisor Workflow window, as in Figure 2. This window is integrated into the IDE, and therefore, you don't need to leave Visual Studio to run the different workflow steps.

[Click image to view at full size]
Figure 2: The Advisor Workflow window.

Once you have your first executable from a C/C++ project, you can start running the following five major workflow steps to model parallelism for your application:

  1. Survey Target. This step lets you determine the parallelizable hotspots, i.e., the code regions where your application spends most of its time. As a result, you will be able to focus your parallelization efforts on the most time-consuming portions of your application. The results provide a complete call tree and allow you to focus on specific loops. Because long-running loops are typically parallelizable hotspots, the complete call tree allows you to examine these loops.
  2. Annotate Sources. For each candidate code region, you can use annotations to tell Parallel Advisor 2011 what parallel sites and parallel tasks you propose to parallelize the execution. The process is very simple but it requires some training on the concept of parallel sites that enclose one or more parallel tasks. These annotations propose parallelization mechanisms that tell Parallel Advisor 2011 the model that it must analyze in the next workflow steps.
  3. Check Suitability. Once you added the annotations, this step allows you to predict the efficiency of the proposed parallelization mechanisms. As a result, you can go back to the previous step to try different parallelization mechanisms. Because you don't need to make the real changes to the code, this test reduces overall development time. The test models your previously added annotations and predicts the results.
  4. Check Correctness. This is my favorite step. You usually want your parallelized application to run faster, but you also need the new code to provide correctness. This step allows you to predict data sharing problems that can cause undesired side-effects when the code is parallelized according to the annotations. The tool predicts data sharing problems by running the serial version of the application but taking into account the annotations and the future behavior. The results of this test provide a report that allows you to add new annotations to fix the data sharing problems found. These annotations can implement locks. In addition, you can decide to make changes in the source code to avoid sharing unnecessary data and to modify the code that is going to run in parallel tasks. Once you make the necessary changes, you must run the Check Suitability step again and then the Check Correctness step, just to make sure that the new annotations are going to be as efficient as expected.

  5. Add Parallel Framework. Finally, it is necessary to make the real changes to the code to introduce parallelism by using your favorite framework. Then, it is time to check the results and to run the workflow steps again to identify other hotspots to introduce parallelism, if necessary.

Intel Parallel Advisor 2011 is a great modeling tool. It requires some training to work with the annotations. However, once you get used to these annotations, you usually reduce your development time. In fact, it is difficult to parallelize code again without working with the aforementioned workflow steps. I'd love to see Parallel Advisor for .NET managed languages soon. Having said this, I'll try to get some information about future plans for this modeling tool at Intel Developer Forum 2010.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.