Threading Building Blocks C++ Library Goes Open Source

A C++ template library for enabling concurrency


July 24, 2007
URL:http://www.drdobbs.com/open-source/threading-building-blocks-c-library-goes/201200707

Intel has made its Threading Building Blocks C++ template library an open source project under the terms of the GNU General Public License, Version 2. The Threading Building Blocks (TBB) software is a C++ template library for parallel programming on multicore-based systems.

At the same time Intel says it will continue to support the commercial version of TBB 2.0, which is available for $299. This product includes one year of technical support, upgrades, and new releases. The commercial version of Intel TBB is also included with the recently launched Intel C++ Compiler Professional Editions 10.0. There are no differences between the open source and commercial versions -- Intel plans to maintain one source base and do builds for both. The difference is in commercial support for the purchased version of TBB; support for the open source version is via threadingbuildingblocks.org, a new open source website.

TBB provides an abstraction for parallelism that avoids the low-level programming inherent in the direct use of threading packages such as p-threads or Windows threads. It uses generic programming to be efficient, but you express tasks instead of threads. Intel claims this lets you build scalable programs with effort, compared to C++ with threading packages.

According to Intel senior engineer James Reinders, the TBB binaries support Windows, Linux , and Mac OS. Release and debug libraries are included in the binaries, as with the commercial version. Sources can build on these platforms so that you can reproduce the binaries yourself. Source build for other platforms (in alpha testing) for Mac OS X ( Power Mac, G5), Solaris 10, and FreeBSD.

Reinders also told said that the focus on C++ will remain, although Intel wil continue to evaluate interest and proposals for .NET and Java versions of TBB.

"C++ remains our priority," Reinders said in a Dr. Dobb's interview. "Java and .NET are used in server environments a great deal where parallelism is an every day occurrence because of running multiple processes to deal with multiple connections and other parallelism. That means the urgency for parallelism solutions on Java and .NET is less than C++."

Terms of Service | Privacy Statement | Copyright © 2024 UBM Tech, All rights reserved.