Intel Flexes Parallel Programming Muscles
Intel Corp has released Parallel Studio 2011, a set of four tools designed to mainstream software development on multicore x86 architectures. This is the second version of the software development suite, building on top of the original Parallel Studio offering introduced in May 2009. The update folds in a number of parallel programming technologies that the company has acquired or developed independently over the past few years, including the Cilk Arts and RapidMind technologies, and Intel’s own Ct data parallel language framework.
Like its predecessor, Parallel Studio 2011 is available as a set of plug-ins to Microsoft’s Visual Studio. As such, it is aimed at the Windows C/ C++ crowd, but some of the technology will soon migrate into Intel’s purpose-built HPC offerings as well. More about that in a bit.
The new release is designed as a soup to nuts development suite that encompasses the entire programming workflow: design, build, debug, verify and tune. To support that range of capabilities, Intel has brought over the three original tools, Parallel Inspector, Parallel Amplifier, and Parallel Composer; thrown in an additional one, Parallel Advisor; and introduced an integrated multicore programming environment, known as Parallel Building Blocks (PBB).
Looking at the elements inherited from the original suite, Composer is still the central development tool, and includes the compilers and libraries needed for code production. It now also incorporates the aforementioned PBB, which is new for this release. The Amplifier tool is used to find hot spots and make sure application performance scales properly when parallelization is applied. Finally, the Inspector tool performs memory checking and uncovers thread error conditions, specifically, data races and deadlocks.
The most notable new capability of the 2011 offering is wrapped up in Parallel Building Blocks. Prior to this release, Parallel Studio apps could use Intel’s Threading Building Blocks (TBB), OpenMP, or the Windows threading API to parallelize software. In the new release, Intel has retained the TBB framework and added two other parallel frameworks: Cilk Plus and Array Building Blocks (ABB). All three are built on top of top of Microsoft’s Concurrency Runtime, which was introduced with Visual Studio 2010. The runtime acts as a resource manager that glues all these frameworks together so they can play nicely with one another within the same app.
Threading Building Blocks is Intel’s original high-level framework for task parallelism on multicore x86. It was introduced three years ago, and is now considered one of the leading parallel development environments for C/C++. It’s implemented as a C++ template library and is used across many computing segments, including technical computing. To complement TBB, Intel has added Array Building Blocks, another C++ template library, but in this case for data parallelism.
If this sounds a bit like Intel’s Ct (C/C++ for throughput computing), that’s because it essentially is. Intel has folded their Ct language technology, along with the RapidMind technology they acquired a year ago, into ABB. Currently in beta, Intel is planning the full ABB product release for next year.
Cilk Plus is the other programming framework that has been productized for Parallel Studio. It’s sort of the odd one out. The technology was acquired when Intel bought Cilk Arts at about the same time as the RapidMind buy. Cilk, the language, is an extension of C/C++ that includes extra keywords to specify parallelism. Cilk Plus adds C/C++ extensions for array notation and represents a solution that incorporates both task and data parallelism. In this framework, the source code is statically compiled (which differentiates it from the more dynamic runtime implementations of TBB and ABB), making it the first choice if lower runtime overhead and a less intrusive coding model is preferred.
Finally, the new Advisor tool helps programmers expedite the design phase of parallel programming. It has been available in beta (as Parallel Advisor Lite) since last May, but is now ready for prime time. Its central purpose is to guide developers through a process that helps them transition their sequential codes into parallel ones.
Each tool can be purchased separately for $399 or bought as a complete package for $799. At that price, the package deal obviously makes sense if you buy two or more tools. And since Composer, which contains the parallel compilers and libraries, is mandatory for code development, once you opt for an additional tool, you might as well take the whole package.
Although Parallel Studio is targeted to C/C++ developers on the Windows client, some of the technology will end up in Intel’s HPC cluster toolset as well. According to Bill Savage, Intel’s vice president and general manager of the General Products Division, Software and Services Group, the Parallel Building Blocks programming frameworks, in particular, will be integrated into Intel’s compilers and runtime libraries aimed at high performance computing applications . The idea is to be able to use the PBB technology for programming the multicore nodes within a distributed MPI-type application. That will entail making these frameworks Fortran- and Linux-friendly, and at some point, adding compiler support for Intel’s Many Integrated Core (MIC), aka Knights Ferry, architecture. Savage said some of this technology will show up in Intel’s HPC portfolio later this year.