Intel® Threading Building Blocks (Intel® TBB)

Get advanced threading for fast, scalable parallel applications

  • Parallelize computationally intensive work, delivering higher-level and simpler solutions using standard C++.
  • Most feature-rich and comprehensive solution for parallel application development.
  • Highly portable, composable, affordable, and approachable and also provides future-proof scalability.
  • Take advantage of Priority Support―connect privately with Intel engineers for technical questions.

What's New in the 2019 Edition

  • Parallel Standard Template Library (Parallel STL) C++17 generic parallel algorithms implementation
  • Expanded support for Android*, macOS*, Windows*, and Linux*.
  • Python* language support for conda* distribution.
  • New capabilities in Flow Graph and Intel® Vtune™ Amplifier improve concurrency and heterogeneity, including reduced task scheduling overhead, default OpenCL™ platform customization, and a user event-tracing API.
Feature Benefit
opencl_node class Use with any graph object. Includes all devices from first available OpenCL™ platform.
blocked_rangeNd class Optimize generic C++11 multidimensional arrays..
lightweight policy Reduced task scheduling overhead in Flow Graph.
Latest and future Intel® architecture support Supports latest Intel architecture. Future-proof with the next generation.

Scalability with Future-Proofing

Threading Building Blocks (TBB) makes parallel performance and scalability easily accessible to software developers who are writing loop- and task-based applications. You can build robust applications that abstract platform details and threading mechanisms while achieving performance that scales with increasing core count. TBB yields linear scaling in these example applications.

benchmark results for an Intel Xeon processor

Rich Feature Set for Parallelism

TBB includes a rich set of components for threading performance and productivity.

Parallel Algorithms and Data Structures

Generic Parallel Algorithms
An efficient, scalable way to exploit the power of multicore without having to start from scratch.

Flow Graph
A set of classes to express parallelism as a graph of compute dependencies or data flows.

Concurrent Containers
Concurrent access and a scalable alternative to containers that are externally locked for thread safety.

Memory Allocation and Task Scheduling

Task Scheduler
Sophisticated work scheduling engine that empowers parallel algorithms and the flow graph.

Memory Allocation
Scalable memory manager and false-sharing free allocators

Threads and Synchronization

Synchronization Primitives
Atomic operations, a variety of mutexes with different properties, and condition variables.

Timers and Exceptions
Thread-safe timers and exception classes.

Threads
Operating system API wrappers.

Thread Local Storage
Efficient implementation for an unlimited number of thread-local variables.

Conditional Numerical Reproducibility

Ensure deterministic associativity for floating-point arithmetic results with the new TBB template function parallel_deterministic_reduce.

Support for C++11 Lambda Expressions

TBB can be used with C++11 compilers and supports lambda expressions. For developers using parallel algorithms, lambda expressions reduce the time and code needed by removing the requirement for separate objects or classes.

Select the Right TBB License

  • A commercial binary distribution for customers who may require commercial support services.
    Attractive pricing available for student and classroom usage.
  • The open source distribution can be used under an Apache* 2.0 license. It allows support for additional operating systems and hardware platforms. Both source and binary forms are available for download.
  • A custom license is available for modifying or distributing the commercial source code of TBB. Contact your Intel representative for more information.

Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. For more complete information, visit www.intel.com/benchmarks.