Parallel Programming & Heterogeneous Computing at Your Fingertips


Intel® Threading Building Blocks (Intel® TBB) makes parallel performance and scalability accessible to software developers who are writing loop- and task-based applications. Build robust applications that abstract platform details and threading mechanisms while achieving performance that scales with increasing core count.

Overview

Intel® Threading Building Blocks (Intel® TBB) is a widely used C++ library for shared memory parallel programming and heterogeneous computing (intra-node distributed memory programming). The library provides a wide range of features for parallel programming that include:

  • Generic parallel algorithms
  • Concurrent containers
  • A scalable memory allocator
  • Work-stealing task scheduler
  • Low-level synchronization primitives

Use this library-only solution for task-based parallelism. It does not require any special compiler support and has ports to multiple architectures that include Intel® architectures and Arm*.

What’s New

  • Parallel Standard Template Library (Parallel STL), a C++17 generic parallel algorithms implementation.
  • Expanded support for Android*, macOS*, Windows*, and Linux*.
  • Python* language support for a conda* distribution.
  • Improved concurrency and heterogeneity, including reduced task scheduling overhead, default OpenCL™ platform customization, and a user event-tracing API.

Release Notes

Threading Building Blocks

Features & Benefits

Features

Parallel Algorithms & 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 & Task Scheduling

  • Task Scheduler: A sophisticated work-scheduling engine that empowers parallel algorithms and the Flow Graph.
  • Memory Allocation: A scalable memory manager and false-sharing free allocators.

Threads & 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 template function: parallel_deterministic_reduce.

Support for C++11 Lambda Expressions

Intel 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.

Benefits

  • Specify logical parallelism instead of threads. Its runtime library automatically maps logical parallelism onto threads in a way that makes efficient use of processor resources, making it less tedious and more efficient.
  • Target threading for performance. The software is also compatible with other threading packages. This gives you the flexibility to leave your legacy code as-is, and use TBB for new implementations.
  • Emphasize data-parallel programming, enabling multiple threads to work on different parts of a collection. This programming scales well to larger numbers of processors by dividing the collection into smaller pieces. Program performance increases as you add processors.
  • Generic programming enables you to write the best possible algorithms with the fewest constraints. For example: Interfaces for the C++ Standard Template Library (STL) are specified by requirements on types.
  • Support heterogeneous computing through the Flow Graph Designer.

Specs at a Glance

Name Description
Processors Optimized for all compatible Intel® processors including Intel Atom®, Intel® Core™, Intel® Xeon®, and Intel® Xeon Phi™ processors.
Language C++
Portability and Compatibility
  • Open source under an Apache* license
  • Compatible with multiple compilers (compiler agnostic)
Operating Systems
  • Windows*
  • Linux*
  • macOS*
  • Android* additional with open source

 


 
有关编译器优化的更完整信息,请参阅优化通知