OSCON Hoping to inspire people to write code that can run on its multi-core processors, Intel has open sourced one of its development packages.
Users of all shapes and sizes can now download the code for Intel's Threading Building Blocks (TBB) – a C++ template library that caters to the design of parallel code. By open-sourcing this product under the GPLv2 (General Public License), Intel expects more developers – particularly those playing with Linux – will give parallel programming a go. This is a self-serving effort in that Intel desperately needs an influx of parallel code in the coming years, so that software will run well across multi-core chips.
Intel pitches TBB as a way to remove some of the headaches associated with parallel programming, where you split up code and run it across a number of systems – in this case, cores – at the same time. Most developers have relied on writing single-threaded code that can run faster and faster as Intel or AMD's ups the GHz of its chips. These chip makers, however, have started to place less emphasis on increasing clock rates, opting to pack chips full of slower cores instead. It's unlikely that the software industry will see historical performance gains on these multi-core chips without embracing parallel programming – quickly.
TBB creates an abstraction layer that lets developers sidestep threading packages such as p-threads or Windows threads.
James Reinders, a senior engineer at Intel speaking here at the OSCON show, described TBB as a set of algorithm templates with a "well-defined" API (application programming interface) for its task scheduler. There's also a scalable memory allocator "competitive with anything out there."
TBB works with Microsoft, GNU and Intel compilers and should work with Sun's compiler in the near future. It also works with both weak and strong memory ordering.
Obviously, the software has been geared for Intel's chips, although it has been run on a G5-based Mac and could be taken to new chips now that it's open source. Linux, Windows, Mac OSX, Solaris and FreeBSD are all supported operating systems.
Intel offers commercial support for TBB 2.0 at $299. The commercial version of the software was included with the release of Intel C++ Compiler Professional Editions 10.0.
One very important note is that Intel has a TBB contest in play. Only open source coders need apply.
In addition, have a look-see as the mobile Linux project. ®