New Parallel Studio: Intel® Parallel Studio 2011

This month, Intel introduced Intel® Parallel Studio 2011. It is a very worthy successor to the original Intel® Parallel Studio by expanding both on the tooling and the parallel programming models it offers.

On the tooling, we have the Intel® Parallel Advisor tool. It is an exciting tool that is a joy to use when considering where to add parallelism into an existing program. It has a straightforward interface to find "hot spots" and add annotations about what you are considering doing to the program. Specifically, you can say "I'm thinking of doing this region in parallel" and "I'll put some sort of a lock around this code." Adding such annotations is done with a few mouse clicks and no work on syntax. Parallel Advisor then offers interactive estimates of speed-up and options to improve, as well as feedback on the correctness of the algorithm. If you forget a lock, you may see great speed-up estimates but will get exact feedback on where race conditions will exist (errors!!!). Having this tool can change lives of programmers adding parallelism to programs. The five steps to success in the tool are:
 

  1. Survey Target – This step helps you focus on the hot call trees and loops as locations to experiment with parallelism.
  2. Annotate Sources – Here you add Advisor annotations into source code to describe the parallel experiment.  You do this without modifying your source code!
  3. Check Suitability – This step evaluates the performance of parallel experiment. It displays performance projection for each parallel site and shows how each impact the entire program.  This way you can pick the areas that have the most performance impact.
  4. Check Correctness - Identifies data issues (races) of each parallel experiment so you can fix these before committing your changes to code.
  5. Add Parallel Framework – After you have corrected any correctness issues, you replace the Advisor framework with real parallel code using a variety of methods. 


The other BIG addition with Intel Parallel Studio 2011 is the expansion of programming model support. Intel has introduced an umbrella project called Intel® Parallel Building Blocks (Intel® PBB). It is a collection of three offerings that include and build upon Intel® Threading Building Blocks (Intel® TBB). Intel TBB is in its fifth year and is more popular than ever. Intel TBB, by design, leaves two opportunities to be addressed with complementary models. First, Intel® Cilk™ Plus shows what can be done by implementing extensions in a compiler instead of the compiler-independent (and highly portable) approach used by Intel TBB. Secondly, Intel® Array Building Blocks (Intel® ArBB) tackles data parallelism directly. Specifically, Intel ArBB focuses on using SIMD parallelism (such as Intel® SSE and Intel® AVX) in conjunction with multicore parallelism. In other words, it takes simple looks at programs and automatically vectorizes and parallelizes the work to be done. Previously, this was best done by making your source code complex and difficult to read.

Intel Cilk Plus is the product results of the combination of Intel's compiler efforts with the team acquired from Cilk Arts a year ago, all based on the award winning Cilk research that began around 1995 at MIT.

Intel Array Building Blocks is the result of the combination of the Intel Ct research project with the RapidMind team also acquired a year ago. The product experience of the RapidMind team form a solid foundation for this new offering. Intel ArBB is "beta" - and anyone can ask to join the beta.

Intel Parallel Studio 2011 maintains full compatibility with Microsoft Visual Studio* 2005 and 2008, and adds support for 2010 which was released by Microsoft earlier this year.

I look forward to experiences and feedback. There is a lot more to write about the gems of this release... I'll work on posting more thoughts and experiences in the future.

By the way - I was on sabbatical this summer... hence my being behind on answering email and calls.  I'm catching up. Ask again if you don't hear back soon!

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

1 comment

Top
anonymous's picture

Some instabilities need improvement. I had used the Intel compiler in the VTune product already and tried the new product. While the integration in Visual Studio is much better, there are is much room for improvement. Especially I have tested the memory leak analysis unter Win7 x86 (4GB memory) against some of my projects. The following issues were observed:
- on very small projects, everything worked fine until the analysis results came up
- on non-trivial projects running the memry leak analysis failed in almost any case for higher analysis levels (never returned after hours) and worke only for the simple level
- there are NO filters for output (previous VTune had error suppression libraries, there is no GUI to supress known but harmless errors)
- it is not possible to limit the analyis to the current module/project - you get error lists of all problems in ALL linked DLLs (except kernel)

- if you run the intel compiler on an MFC program with latest MFC files, you get compiler errors within the MFC (with basic settings, I had no time to search for workarounds - this must work out of the box)
- the intel compiler had a problem on the following code snippet:
// helper for get CPU cycle for very very short delay
// use Pentium Cycle Counter
#define RDTSC __asm __emit 0fh __asm __emit 031h /* hack for VC++ 5.0 */
class TKCPUDelay {
public:
void Mark(){ m_mark = _GetTicks(); };
int Diff(){ return int(_GetTicks().QuadPart - m_mark.QuadPart); };
private:
static __inline LARGE_INTEGER _GetTicks( void )
{
LARGE_INTEGER res;
__asm {
RDTSC
mov res.HighPart, edx
mov res.LowPart, eax
}
return res;
}

LARGE_INTEGER m_mark;
};

It is not possible to compile the SECOND C variable replacement "res.LowPart" - VC 2008 has no problems with this expression.

Finally: If you install Parallel Studio, there is NO uninstall which removes the whole suite - you have to uninstall all 4 tools step by step.

All this together lets me wait for improvements (not to buy yet).

Add a Comment

Have a technical question? Visit our forums. Have site or software product issues? Contact support.