Intel rev’s tools for multi-core C++
Jul 22, 2008 — by Eric Brown — from the LinuxDevices Archive — 3 viewsIntel released a new version of its Linux-compatible, open source library for multi-core C++ development. Version 2.1 of Intel Threading Building Blocks (TBB) offers performance improvements, adds a portable affinity mechanism, and improves the task scheduler to ease development for GUIs, network I/O, and artificial intelligence, says Intel.
Announced last July under the “GPLv2 with runtime exception” license, TBB is a cross-platform, portable library aimed at improving the performance of C++ applications on multi-core processors. Supporting Linux, Mac OS X, Windows, and Solaris, the library comprises a 120KB runtime combined with “template libraries” linked in at compile time, says Intel. TBB implements a task scheduler, memory allocator, and timing counter, along with various generic parallel algorithms, thread-safe containers, and synchronization primitives.
Overview of TBB 2.1 enhancements
Announced at O'Reilly's tenth-annual OSCON (Open Source Convention) today in Portland, Ore., Version 2.1 improves a number of TBB components, including the task scheduler and memory allocator, says Intel. It also adds the following new components:
- tbb_threadabstraction
- parallel_do
- tbb_allocator
- blocked_range3d
- recursive_mutex
Previously, the task scheduler handled blocking tasks using non-portable native threads, which Intel says required additional thread management. The new tbb_threadabstraction component is said to streamline development by supporting blocking tasks without interfering with computational work. Another key feature is the new portable affinity mechanism, aimed at reducing cache changes in chained parallel operations.
Task scheduling in TBB 2.0 (left) and TBB 2.1 (right), which adds blocking task support
(Click either to enlarge)
Additional touted new features in TBB 2.1 include:
- Support for 1-, 2- or 3-D ranges for more efficient work breakdown
- Better performance throughout algorithms and containers
- Choice of any memory allocator
- Improved APIs
- Better support for expert users using “black belt” hooks
- Support for task cancellation and exceptions
TBB is said to simplify parallel programming by avoiding the low-level coding required with threading packages such as p-threads or Windows threads. It supports the GNU Compiler Collection (GCC), and Intel's commercial compilers, but was designed to support “any compiler,” says the company.
O'Reilly's Intel TBB book (Click for details) |
In early May, Intel and Sun Microsystems announced they had ported TBB to Solaris and the Linux- and Solaris-compatible Sun Studio software toolchain. A year ago, OSCON host O'Reilly published a book on Intel TBB (see image).
Availability
TBB 2.1 is available starting July 23, says Intel. More information on the free, open-source version should be available here, and more details on Intel's commercial version may be found here.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.