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

Intel TBB is available as part of Intel® Parallel Studio XE and Intel® System Studio tool suites, and as free stand-alone and open source versions. A purchased license includes Priority Support.

Key Benefits of Using Intel TBB

Intel TBB differs from typical threading packages, it:

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, making it less tedious and more efficient.

Intel TBB can coexist seamlessly with other threading packages, giving you 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.

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.

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

Socioeconomics

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: