The template scalable_allocator<T> requires the Intel® Threading Building Blocks (Intel® TBB) scalable memory allocator library as described in Scalable Memory Allocator. It does not require the Intel® TBB general library, and can be used independently of the rest of Intel® TBB.
The task scheduler works most efficiently for fork-join parallelism with lots of forks, so that the task-stealing can cause sufficient breadth-first behavior to occupy threads, which then conduct themselves in a depth-first manner until they need to steal more work.
Time slicing enables there to be more logical threads than physical threads. Each logical thread is serviced for a time slice by a physical thread. If a thread runs longer than a time slice, as most do, it relinquishes the physical thread until it gets another turn. This appendix details the costs incurred by time slicing.
Requirements for type representing a recursively divisible set of values.
The following table lists the requirements for a Range type R.
SummaryInlet into which additional work items for a parallel_do can be fed.
template<typename Item> class parallel_do_feeder;
Template class for associative container with concurrent access.
The methods described in this section may be concurrently invoked on the same vector as methods for concurrent growth. However, the returned reference may be to an element that is being concurrently constructed.
A base class for all graph nodes.