The third tool is called Array Building Blocks (ArBB), and it's perhaps the most ambitious of the three. ArBB defines a new, domain-specific language syntax that can be embedded into C/C++ code. At runtime, ArBB instructions are compiled with a JIT (just-in-time) compiler that automatically generates appropriate machine instructions for the underlying hardware, including SIMD processing units. The result is parallel software that not only adapts to the capabilities of each processor, but is also "future proof" for new chip developments and instruction sets. ArBB is technically just entering beta as of this month, but it's based on Intel Ct technology combined with technology the chipmaker acquired from RapidMind last August.
Are Parallel Building Blocks for everyone?
So why three technologies instead of just one? Intel Parallel Studio actually includes more tools than just these, but the short answer is that while all three Intel Parallel Building Blocks can be used together in the same program, each might be more appropriate for different circumstances. TBB might be the easiest way for game developers to add parallelism to their existing code, for example, while ArBB's domain-specific language might be more suited for programmers who are comfortable implementing algorithms in a more mathematical way -- for example, in the finance industry.
Whichever your poison, the goal of all three Building Blocks is to make it easier to write reliable, scalable, bug-free parallel programs with as few lines of code as possible. Intel's aim is to make writing parallel code as easy as writing traditional software. And that's a good thing, because the trend toward parallelism is only going to increase, particularly as Intel moves toward its upcoming Many Integrated Core (MIC) architecture.
If there's one troubling aspect to Intel's approach, however, it's the conspicuous absence of any talk of support for competing chips and architectures, including those from AMD, Via, and ARM holdings. Intel has been accused in the past of using its dominant position in the PC chip industry to stifle competitors. Not long ago, it was claimed that Intel's C/C++ compilers produced inferior code for AMD and Via chips (and you'll need to use Intel's compilers to take advantage of Cilk Plus).
If Intel hopes to leverage its Parallel Studio tools to gain further advantage over its competitors, that will be a shame. Competition in the microprocessor industry is a good thing, and developers are likely to want to continue to target multiple architectures for the foreseeable future -- particularly ARM, which remains the dominant architecture for mobile devices. Let's hope Intel doesn't squander the potential of these tools and techniques -- and further limit the growth of parallel programming -- by limiting them to a walled garden of its own products.
This article, "Intel tools harness the true promise of multicore chips," originally appeared at InfoWorld.com. Read more of Neil McAllister's Fatal Exception blog and follow the latest news in programming at InfoWorld.com.