Intel® Threading Building Blocks (Intel® TBB)Close
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.
Parallel Programming and Heterogeneous Computing at Your Fingertips with Threading Building Blocks
This application 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. Threading Building Blocks (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 Architecture*.
TBB is available as part of Intel® Parallel Studio XE and Intel® System Studio, and as free stand-alone and open source versions. A purchased license includes Priority Support.
Key Benefits of Using TBB
TBB differs from typical threading packages, it:
- Enables you to specify logical parallelism instead of threads.
TBB has a runtime library that automatically maps logical parallelism onto threads in a way that makes efficient use of processor resources, making it less tedious and more efficient.
- Targets threading for performance.
TBB focuses on parallelizing computationally intensive work, delivering higher-level, simpler solutions.
- Is compatible with other threading packages.
TBB can coexist seamlessly with other threading packages, giving you flexibility to not touch your legacy code but still use TBB for new implementations.
- Emphasizes scalable, data parallel programming.
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.
Generic programming writes 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.
TBB does this through the Flow Graph Designer.
What kind of applications can be multithreaded and parallelized using TBB?
Multithreading 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
Benefits of Priority Support
Paid licenses of Intel® Software Development Tools include Priority Support for one year from your date of purchase, with options to extend support at a reduced rate. Benefits include:
- Direct and private interaction with Intel engineers. Submit confidential inquiries and code samples via the Online Service Center.
- Responsive help with your technical questions and other product needs.
- Free access to all new product updates and access to older versions.
- Learn from other experts via community product forums.
- Access to a vast library of self-help documents that build off decades of experience for creating high-performance code.
Specs at a Glance
Optimized for all compatible Intel® processors including Intel Atom®, Intel® Core™, Intel® Xeon®, and Intel® Xeon Phi™ processors.
Portability and Compatibility
Microsoft Windows*, Linux*, macOS *, and Android* (additional with open source).
For complete information, see Documentation.