Intel's Threading Building Blocks Goes Open Source
Intel's Threading Building Blocks lets programmers thread like an expert without being one, explained James Reinders, software evangelist and director of marketing for Intel's Software Development Products. The product requires fewer lines of code to achieve parallelism than other threading models. Applications written with threading are portable across platforms.
Intel announced Tuesday the release of Threading Building Blocks 2.0 as both an open source and commercial product. The company also launched a Web site that establishes an open source project around this product.
Threading Building Blocks (TBB) is a C++ runtime library that abstracts the low-level threading details necessary for optimal multi-core performance. It uses common C++ templates and coding style to eliminate tedious threading implementation work, thus simplifying threading for performance and scalability, the company said. It requires less code for threading and delivers multi-core performance.
"We found people very hungry to program in C++, but multi-threading common tasks is not available in all platforms. Now it can be used by everyone," James Reinders, software evangelist and director of marketing for Intel's Software Development Products, told LinuxInsider. "I'm not aware of any threading product available as open source until now."
Builds on Parallelism
Intel's Threading Building Blocks lets programmers thread like an expert without being one, Reinders said. The product requires fewer lines of code to achieve parallelism than other threading models.
Another benefit of this technology is that applications written with threading are portable across platforms. Since the runtime library is also inherently scalable, no code maintenance is required as more processor cores become available, he explained.
Threading Building Blocks abstracts parallelism away from an assembly language sort of world (raw threading) into a high-level representation world of tasks, he added.
Intel's TBB 2.0 extends the technology to more operating systems. Now included are Linux, Mac OS X Power Mac (32/64 bits) G5, Windows, IA32, IA64, Intel 64 processors, Solaris 10 (32/64 bits) and FreeBSD 6.2
TBB 2.0 also extends C++ like STL (standard template library), but it does this with concurrency in mind.
The programming product consists of building blocks for threading. This allows programmers to use some or all of its components rather than forcing them into an all-or-nothing approach.
TBB 2.0 coexists with raw threads such as Windows and POSIX (Portable Operating System Interface) and OpenMP.
Intel decided to release TBB 2.0 as open source to make it broadly adopted, according to Reinders. Intel will continue to offer a packaged commercial version and support for a fee.
The commercial (US$299) version builds from the same source with no difference in functionality, he said.
"Our customers need to know that it can be available on any platform they desire and that it will always be available. Open source is a natural at making this happen," he said.
The source code and open source project community are located at a dedicated Web site. Intel will maintain this as a full open source Web site with downloads, forums, mail list, submissions and bug list.
Intel offers the commercial version of TBB at a commercial site.
The runtime exception can also be found online. It is the one FSF/GNU uses for libstdc++ (C++ standard library), said Reinders.
Intel's open source project is committed to compiler independence, processor independence and operating system independence, the company said. Future Plans "Intel is investing in this project and is adding engineers to it. We put a lot of energy into making this competitive. Intel hopes to keep more programmers comfortable using parallel programs," said Reinders.
Intel is supporting C++ because it is a hotbed for concurrent application development, according to Reinders. It supplies the underpinnings for the majority of programming, either directly or indirectly.
Meanwhile, .NET and Java live largely in a concurrent environment where multiple concurrent processes are providing a great deal of parallelism today. So Intel plans to evaluate interest and proposals for .NET and Java versions of the Threading Building Blocks, Reinders allowed.
However, C++ remains Intel's priority, and the company will work to make sure it gets done with higher priority than moving to other languages, he said.