[For complete, up-to-date TBB information visit: http://www.ThreadingBuildingBlocks.org]
Intel® Threading Building Blocks is a library that supports scalable parallel programming using standard ISO C++ code. It does not require special languages or compilers. It is designed to promote scalable data parallel programming. Additionally, it fully supports nested parallelism, so you can build larger parallel components from smaller parallel components. To use the library, you specify tasks, not threads, and let the library map tasks onto threads in an efficient manner.
Many of the library interfaces employ generic programming, in which interfaces are defined by requirements on types and not specific types. The C++ Standard Template Library (STL) is an example of generic programming. Generic programming enables Intel® Threading Building Blocks to be flexible yet efficient. The generic interfaces enable you to customize components to your specific needs.
The net result is that Intel® Threading Building Blocks enables you to specify parallelism far more conveniently than using raw threads, and at the same time can improve performance.
This document is a reference manual. It is organized for looking up details about syntax and semantics. You should first read the Intel® Threading Building Blocks Getting Started Guide and the Intel® Threading Building Blocks Tutorial to learn how to use the library effectively.
TIP: Even experienced parallel programmers should read the Intel® Threading Building Blocks Tutorial before using this reference guide because Intel® Threading Building Blocks uses a surprising recursive model of parallelism and generic algorithms.
that swaps two int values x and y. The other requirement for sortable, specifically x<y, is already met by the built-in operator< on type int.
The library sometimes requires that a type model the CopyConstructible concept, which is defined by the ISO C++ standard. Table 2 shows the requirements for CopyConstructible in pseudo-signature form.
Table 2: CopyConstructible Requirements
Pseudo-Signature
Semantics
T( const T& )
Construct copy of const T
~T()
Destructor
T* operator&()
Take address
const T* operator&() const
Take address of const T
[For complete, up-to-date TBB information visit: http://www.ThreadingBuildingBlocks.org]