Intel

Using Intel.com Search

You can easily search the entire Intel.com site in several ways.

  • Brand Name: Core i9
  • Document Number: 123456
  • Code Name: Emerald Rapids
  • Special Operators: “Ice Lake”, Ice AND Lake, Ice OR Lake, Ice*

Quick Links

You can also try the quick links below to see results for most popular searches.

The browser version you are using is not recommended for this site.
Please consider upgrading to the latest version of your browser by clicking one of the following links.

Scalable Parallel Programming at Your Fingertips

Intel® oneAPI Threading Building Blocks (oneTBB)† is a flexible performance library that simplifies the work of adding parallelism to complex applications across accelerated architectures, even if you’re not a threading expert.

oneTBB is ideal for a wide range of compute-intense domains, such as:

  • Numeric weather prediction
  • Oceanography
  • Astrophysics
  • Genetic engineering
  • Seismic exploration
  • AI and automation
  • Energy resource exploration
  • Socioeconomics

†Intel® Threading Building Blocks (Intel® TBB) is now called Intel oneAPI Threading Building Blocks (oneTBB) to highlight that the tool is part of the oneAPI ecosystem.

oneTBB is included as part of the Intel® oneAPI Toolkit, which is a core set of tools and libraries for developing high-performance, data-centric applications across diverse architectures.

A stand-alone download of oneTBB is available. You can download binaries from Intel or choose your preferred repository.

oneTBB is part of the oneAPI industry standards initiative. We welcome you to participate.

Features

oneTBB differs from typical threading packages in the following ways:

Specify Logical Performance, Not Threads
A runtime library automatically maps logical parallelism onto threads, making the most efficient use of processor resources.
 

Targets Threading for Performance
Focuses on the specific goal of parallelizing computationally intensive work, delivering higher-level, simpler solutions.


Coexists with Other Threading Packages
Seamlessly compatible with other threading packages, it gives you the flexibility to keep your legacy code as-is and use oneTBB for new implementations.

Emphasizes Scalable, Data-Parallel Programming
Rather than breaking up a program into functional blocks and assigning a separate thread to each, oneTBB emphasizes data-parallel programming, enabling multiple threads to work on different parts of a collection. This scales well to larger numbers of processors by dividing the collection into smaller pieces. Program performance increases as you add cores and processors.

Benchmarks 

This benchmark illustrates the performance scalability of oneTBB.

Code Samples

Get Started 

sub_string_finder

Learn how to use the parallel_for algorithm by locating a substring in the string.  

Use oneTBB and SYCL*

tbb-async-sycl

See how to split the computational kernel for running between a CPU and GPU.

tbb-resumable-tasks-sycl

Learn how to use parallel_for and resumable tasks to split the computational kernel between a CPU and GPU. 

tbb-task-sycl

Observe how similar computational kernels are run by two oneTBB tasks with TBB code and code that's compliant with SYCL*.  


Advanced Scenarios

parallel_for

Examples in this repository show how to use the parallel_for algorithm for a 2D ray tracer and renderer, seismic wave simulation, and more.

Flow Graph

Examples in this repository show how to use a flow graph for a self-organizing map, the Cholesky Factorization algorithm, and more.

parallel_reduce

Learn how to use the parallel_reduce algorithm for the Sieve of Eratosthenes method, and more. 

View All Code Samples (GitHub)

Languages:

  • Data Parallel C++ (DPC++)
  • C++

Operating systems:

  • Windows
  • Linux
  • macOS*
  • Android* (additional with open source) 

Get Help

Your success is our success. Access these forums when you need assistance.

Read the original on intel.com ↗