Intel announced today that they're open-sourcing their cross-platform Thread Building Blocks 2.0 (TBB) template library. While the company contributes code to open-source project like the Linux kernel and drivers, the opening of TBB marks the first time that Intel has taken a commercial tool and open-sourced it, making it Intel's largest open-source commitment to date.

The aim of TBB, which I've described in previous coverage of Intel's multicore compilers, is to make it easier for coders in C++ to express task-level parallelism. TBB works by abstracting parallelism above the level that most programmers are currently used to, especially those coders who use POSIX or Windows threads. Coders can use the TBB template library in conjunction with the platform's native threads, and the different pieces of the project (task scheduler, mutex locks, atomic operations, containers, etc.) can be used independently of one another.

Intel clearly wants to position TBB as the standard tool for writing multithreaded code, as opposed to OpenMP, and Windows and POSIX threads. The company claims that the project as a whole is committed to processor-, compiler-, and OS-independence, and they've launched a new site for the open-source version: threadbuildingblocks.org. The site has all the typical open-source project aspects, like a CVS, forums, mailing lists, and so on, and Intel is currently in the process of adding engineers to it. TBB 2.0 currently runs on non-Intel hardware, like the G5, and on operating systems from Solaris to Linux. It also works with multiple compilers, including Intel's own in-house compiler and gcc.

James Reinders, chief evangelist and director of Marketing for Intel, has written an O'Reilly book on TBB 2.0, so Intel is announcing that as well. The book has a foreword by Adobe's Alexander Stepanov, and there's a free chapter available for download for anyone who wants to learn more about the project.

TBB 2.0 will be available under the GPL v2 license (with runtime exceptions). Reinders told me that Intel is evaluating GPL v3, but they haven't yet made a decision about moving the project to the new license. Intel will continue selling a commercial version of TBB that has identical functionality to the GPL version but that includes a support package.

Intel claims that they had two main reasons for open-sourcing the project: 1) platform independence and 2) ongoing availability. The company wanted those who adopt TBB to be confident that it would be available on their platform of choice and that it wouldn't be orphaned by Intel eventually, so they chose to open the project up and let the community have it.

Java and .NET versions of TBB are currently being evaluated by Intel, and may eventually be announced. But Intel maintains that C++ is the company's priority, and it's where they'll be focusing the engineering resources that they're adding to the project.

The new open-source project is just one of a number of Intel projects related to making parallelism easier for programmers to find and use. At the recent Research@Intel day, the company also showed off a project called CT, which is an alternative to OpenMP that aims to make it easier to express data-level parallelism. In fact, most of the projects that Intel showed off at the research day were actually software projects that dealt with parallelism in some form or another. Having bet the company on parallelism, Intel is doing everything it can to see that programmers are equipped to take advantage of multicore and many-core.