Intel® Threading Building Blocks (Intel® TBB)
Intel® Threading Building Blocks (Intel® TBB)Close
Leverage multi-core performance and heterogeneous computing without having to be a threading or parallel programming expert.
- 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.
- Compile agnostic, supports multiple OS and optimized for all Intel® architectures
Parallel Programming and Heterogeneous Computing at your Fingertips with Intel® TBB
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, including generic parallel algorithms, concurrent containers, a scalable memory allocator, work-stealing task scheduler, and low-level synchronization primitives. Intel TBB is a library only solution for task-based parallelism and does not require any special compiler support. It ports to multiple architectures including Intel® architectures, ARM*, and POWER*.
Key Benefits of Using Intel TBB
Intel TBB differs from typical threading packages in the following ways:
- Enables you to specify logical parallelism instead of threads.
Intel TBB has a runtime library that automatically maps logical parallelism onto threads in a way that makes efficient use of processor resources―thereby making it less tedious and more efficient.
- Targets threading for performance.
Intel TBB focuses on the particular goal of parallelizing computationally intensive work, delivering higher-level, simpler solutions
- Compatible with other threading packages.
Intel TBB can coexist seamlessly with other threading packages, giving you the flexibility to not touch your legacy code but still use Intel TBB for new implementations.
- Emphasizes scalable, data parallel programming.
Intel TBB emphasizes data-parallel programming, enabling multiple threads to work on different parts of a collection. Data-parallel programming scales well to larger numbers of processors by dividing the collection into smaller pieces. With data-parallel programming, program performance increases as you add processors.
- Relies on generic programming.
Intel TBB uses generic programming. The essence of generic programming is writing the best possible algorithms with the fewest constraints. The C++ Standard Template Library (STL) is a good example of generic programming in which the interfaces are specified by requirements on types.
- Supports heterogeneous computing.
Intel TBB does this through the Flow Graph Designer.
What kind of applications can be multi-threaded/parallelized using Intel TBB?
Multi-threading is for applications where the problem can be broken down into tasks that can be run in parallel, or where the problem itself is massively parallel, as some mathematics or analytical problems are:
- Numeric weather prediction
- Oceanography and astrophysics
- Finite element analysis
- AI and automation
- Genetic engineering
- Seismic exploration
- Weapon research and defense
- Remote sensing applications
- Medical applications
- Energy resource exploration
Specs at a Glance
Optimized for all Intel® compatible processors including Intel® Atom™, Intel® Core™, and Intel® Xeon® processors, and Intel® Xeon Phi™ coprocessors.
Portability and Compatibility
Open source under Apache* license and commercial licensing available through Intel® Parallel Studio XE and Intel® System Studio. See try and buy to compare options.
Compatible with multiple compilers (compiler agnostic)
Windows*, Linux*, OS X*, and Android* (additional with open source).
For complete information, see the release notes and documentation.