Intel® Threading Building Blocks is compatible with the GCC* and Microsoft compilers. This section assumes that you are using the Intel® C++ Compiler. You can use the GCC or Microsoft C++ compilers interchangeably in the directions given below.
Template class for atomic operations.
The extension allows a key matching join_node to obtain keys via functions associated with its input types. The extension simplifies the existing approach by removing the need to provide a function object for each input port of join_node.
Intel® Threading Building Blocks (Intel® TBB) propagates exceptions along logical paths in a tree of tasks. Because these paths cross between thread stacks, support for moving an exception between stacks is necessary.
When an exception is thrown out of a task, it is caught inside the Intel TBB run-time and handled as follows:
To cancel a graph execution without an exception, you can create the graph using an explicit task_group_context, and then call cancel_group_execution() on that object. This is done in the example below:
You can successfully parallelize many applications using only the constructs in the Parallelizing Simple Loops section. However, some situations call for other parallel patterns. This section describes the support for some of these alternate patterns.
One powerful way to increase the scalability of a flow graph is to nest other parallel algorithms inside of node bodies. Doing so, you can use a flow graph as a coordination language, expressing the most coarse-grained parallelism at the level of the graph, with finer grained parallelism nested within.
Hash support classes to use with associative containers provided by Intel® Threading Building Blocks (Intel® TBB).