Welcome Guest | Login | Register
 
Product

Overview

Threading Building Blocks (TBB) is an award-winning 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.

TBB requires fewer lines of code to achieve parallelism than other threading models. The applications you write are portable across platforms. Since the library is also inherently scalable, no code maintenance is required as more processor cores become available.

Features

Ready to use parallel algorithms:

Select from a library of highly-efficient parallel algorithm templates, and rapidly obtain the advantages of multi-core Intel processors.

  • Quickly employ commonly needed algorithms designed for parallel performance and scalability.
  • Generic templates let you easily tailor these algorithms to your needs.
  • Supports easy plug-in deployment into applications to deliver scalable software speed-up, optimizing for both available cores and cache locality.
  • Reduce the work required to produce threaded software in many cases, by means of pre-built parallel constructs.
Cross platform support:

Write applications once and deploy on multiple OS's.
  • Provides a single solution for Windows*, Linux*, and Mac OS* X on 32-bit and 64-bit platforms using Intel®, Microsoft, and GNU compilers.
  • Supports industry-leading compilers from Intel, Microsoft and GNU.
  • Speeds deployment of applications on multiple multi-core platforms.
Task based parallelism:

Specify threading functionality in terms of logical tasks instead of physical threads.
  • Lets developer focus on higher level of scalable task patterns instead of low-level thread mechanics
  • Uses proven data-decomposition abstractions that efficiently use multiple cores
  • Enables automatic load balancing
  • Efficiently supports nested parallelism, allowing parallel components to be built from other parallel components
Library based solution:

Get highly optimized parallel functionality now with minimal effort.
  • Your C++ application simply calls the Threading Building Blocks library
  • Standard C++ - no need to rewrite code in a new language
  • Compatible with other threading packages
  • Allows unlimited distribution of the runtime libraries with your software
  • Seamlessly integrates into existing development environments
Highly concurrent containers:

Optimize the processor's ability to perform simultaneous tasks.
  • Simplify multithreaded application development with interfaces designed for thread-safety and high concurrency.
  • Improve application quality by employing pre-tested data structures.
  • Improve application performance by enabling multiple execution cores or processors to work together more efficiently.

Automatic grainsize calculation:

TBB can automatically calculate grainsize to control the granularity of a task in order to get good performance on multi-core processors.

New in This Release

The following features are new since version 1.0:

  • Support for Microsoft Windows Vista*
  • Support for Apple Mac OS* X systems with Intel® 64 architecture
  • Support for Apple’s Mac OS* X 10.4.8
  • Support for additional Linux distributions, including: Red Hat EL5, Red Hat Fedora Core 5 and 6 and Asianux* 2.0
  • Improved performance/robustness of the spin_mutex class
  • Automatic grain size calculator for optimal algorithm parallelization

Library Components

Threading Building Blocks contains the following library components:

Generic Parallel Algorithms

  • parallel_for
  • parallel_reduce
  • parallel_scan
  • parallel_sort
  • parallel_while
  • pipeline

Assistant Classes to Use with Algorithms
  • blocked_range (for use with algorithms, containers, etc.)
  • blocked_range2d (for use with algorithms, containers, etc.)

Thread-Safe Containers
  • concurrent_hash_map
  • concurrent_queue
  • concurrent_vector

Synchronization Primitives
  • atomic
  • spin_mutex
  • spin_rw_mutex (reader-writer spin mutex)
  • queuing_mutex
  • queuing_rw_mutex (reader-writer queuing mutex)
  • mutex

Task Scheduler

Memory Allocation
  • scalable_allocator
  • cache_aligned_allocator
  • aligned_space

Timing
  • tick_count

Compatibility

Threading Building Blocks are cross-platform (Windows, Linux, and Mac OS* X), support 32-bit and 64-bit applications as well as work with Intel, Microsoft and GNU compilers.

This library is specifically designed to work in concert with other threading technologies, such as Win32*, POSIX*, and OpenMP* threads, providing a high degree of design and development flexibility. The templates implemented in Intel Threading Building Blocks rely on generic programming in order to provide high-speed and flexible algorithms with very few implementation constraints.

Threading Building Blocks supports the following processors:

  • Intel® Pentium® 4 processor
  • Intel® Xeon® processor
  • Intel Pentium D processor
  • 64-bit Intel Xeon processor
  • Intel® Core™ Solo processor
  • Intel Core Duo processor
  • Intel Core 2 Duo processor
  • Intel® Itanium® 2 processor (Linux* systems only)
  • Non Intel processors compatible with the above processors
Threading Building Blocks supports the following operating systems:

Microsoft Windows* Systems
  • Microsoft Windows XP Professional
  • Microsoft Windows Server* 2003
  • Microsoft Windows Vista*
Linux* Systems
  • Red Hat Enterprise Linux* 3, 4 and 5 (when using Red Hat Enterprise Linux 4 with Intel Itanium processors, operating system Update 2 or higher is recommended)
  • Red Hat Fedora* Core 4, 5 and 6 (not with Intel Itanium processors)
  • Asianux* 2.0
  • Red Flag DC Server 5.0
  • Haansoft Linux* Server 2006
  • Miracle Linux v4.0
  • SuSE Linux Enterprise Server (SLES) 9 and 10
  • SGI Propack* 4.0 (with Intel Itanium processors only)
  • SGI Propack 5.0 (not with IA-32 architecture processors)
  • Mandriva/Mandrake Linux 10.1.06 (not with Intel Itanium processors)
  • Turbolinux GreatTurbo* Enterprise Server 10 SP1 (not with Intel Itanium processors)

Mac OS* X Systems
  • Mac OS* X 10.4.4 or higher
Threading Building Blocks supports the following compilers:
  • Microsoft Visual C++* 7.1 (Microsoft Visual Studio* .NET 2003, Windows systems only)
  • Microsoft Visual C++ 8.0 (Microsoft Visual Studio 2005, Windows systems only)
  • Intel® C++ Compiler 9.0 or higher (Windows and Linux systems)
  • Intel® C++ Compiler 9.1 or higher (Mac OS* X systems)
  • For each supported Linux operating system, the standard gcc version provided with that operating system is supported, including: 3.2, 3.3, 3.4, 4.0, 4.1
  • For each supported Mac OS* X operating system, the standard gcc version provided with that operating system is supported, including: 4.0.1 (Xcode* tool suite 2.2.1 or higher)
System Requirements
Threading Building Blocks supports the following operating systems:
  • Windows
  • Linux
  • Mac OS* X

System Requirements for Microsoft Windows Systems

Hardware

Minimum Requirements

  • Intel® Pentium® 4 processor
  • 300 MB of disk space

Recommended

  • Intel Pentium 4 processor supporting Hyper-Threading Technology1 (HT Technology) or Intel® Xeon® processor

Software

Minimum Requirements

  • Microsoft Windows* XP Professional, Microsoft Windows Server* 2003, or Microsoft Windows Vista*
  • Intel® C++ Compiler 9.0 for Windows or higher
  • Microsoft Visual C++* 7.1 or 8.0
  • Microsoft Internet Explorer* 6.0 or higher
  • Adobe Reader* 6.0 or higher

Recommended

  • Intel® Thread Checker 3.0 or higher
  • Intel® Thread Profiler 3.0 or higher


System Requirements for Linux Systems

Hardware

Minimum Requirements

  • Intel® Pentium® 4 processor or Intel® Itanium® 2 processor
  • 300 MB of disk space

Recommended

  • Intel Pentium 4 processor supporting Hyper-Threading Technology1 (HT Technology), Intel® Xeon® processor, or Intel Itanium 2 processor

Software

Minimum Requirements

  • One of the following operating systems:

    • Red Hat Enterprise Linux* 3, 4, or 5
    • Red Hat Fedora Core* 4, 5, or 6 (not supported on Itanium-based systems)
    • Asianux* 2.0
    • Red Flag DC Server* 5.0
    • Haansoft Linux* Server 2006
    • Miracle Linux v4.0
    • SuSE Linux Enterprise Server* 9 or 10
    • SGI Propack* 4.0 (supported on Itanium-based systems only)
    • SGI Propack 5.0 (not with IA-32 architecture processors)
    • Mandriva/Mandrake Linux 10.1.06 (not with Intel Itanium processors)
    • Turbolinux GreatTurbo* Enterprise Server 10 SP1 (not with Intel Itanium processors)
  • One of the following compilers:

    • Intel® C++ Compiler 9.0 for Linux or higher
    • GCC 3.2, 3.3, 3.4, 4.0, or 4.1
  • Adobe Reader* 6.0 or higher

Recommended

  • Intel® Thread Checker 3.0 or higher
  • Web browser


System Requirements for Mac OS* X Systems with Intel Processors

Hardware

Minimum Requirements

  • Intel® Core™ Solo processor
  • 300 MB of disk space

Recommended

  • Intel® Core™ Duo processor

Software

Minimum Requirements

  • Mac OS* X 10.4.4
  • Xcode tool suite 2.2.1 or higher
  • Intel® C++ Compiler 9.1 for Mac OS* X or higher
  • Adobe Reader* 6.0 or higher

Recommended

  • Web browser


1 Hyper-Threading Technology requires a computer system with an Intel® Pentium® 4 processor supporting HT Technology and a Hyper-Threading Technology enabled chipset, BIOS, and operating system. Performance will vary depending on the specific hardware and software you use. See http://www.intel.com/info/hyperthreading for more information including details on which processors support HT Technology.

Search 

Page & Feed options
Print | Email to a friend | Support | RSS

Bookmark This
 Digg this   del.icio.us

Resources

       Buy Now
Intel TBB        


Do you use TBB for open source or commercial projects?