oneAPI Threading Building Blocks (oneTBB) documentation
Getting Help and Support
Notational Conventions
Introduction
oneTBB Benefits
oneTBB Developer Guide
Package Contents
Debug Versus Release Libraries
Scalable Memory Allocator
Windows*
Linux*
macOS*
Parallelizing Simple Loops
Initializing and Terminating the Library
parallel_for
Lambda Expressions
Automatic Chunking
Controlling Chunking
Bandwidth and Cache Affinity
Partitioner Summary
parallel_reduce
Advanced Example
Advanced Topic: Other Kinds of Iteration Spaces
Parallelizing Complex Loops
Cook Until Done: parallel_for_each
Working on the Assembly Line: parallel_pipeline
Using Circular Buffers
Throughput of pipeline
Non-Linear Pipelines
Summary of Loops and Pipelines
Parallelizing Data Flow and Dependence Graphs
Parallelizing Data Flow and Dependency Graphs
Basic Flow Graph Concepts
Flow Graph Basics: Graph Object
Flow Graph Basics: Nodes
Flow Graph Basics: Edges
Flow Graph Basics: Mapping Nodes to Tasks
Flow Graph Basics: Message Passing Protocol
Flow Graph Basics: Single-push vs. Broadcast-push
Flow Graph Basics: Buffering and Forwarding
Flow Graph Basics: Reservation
Graph Application Categories
Data Flow Graph
Dependence Graph
Predefined Node Types
Flow Graph Tips and Tricks
Flow Graph Tips for Waiting for and Destroying a Flow Graph
Flow Graph Tips on Making Edges
Flow Graph Tips on Nested Parallelism
Flow Graph Tips for Limiting Resource Consumption
Flow Graph Tips for Exception Handling and Cancellation
Estimating Flow Graph Performance
Work Isolation
Exceptions and Cancellation
Cancellation Without An Exception
Cancellation and Nested Parallelism
Containers
concurrent_hash_map
More on HashCompare
concurrent_vector
Concurrent Queue Classes
Iterating Over a Concurrent Queue for Debugging
When Not to Use Queues
Summary of Containers
Mutual Exclusion
Mutex Flavors
Reader Writer Mutexes
Upgrade/Downgrade
Lock Pathologies
Timing
Memory Allocation
Which Dynamic Libraries to Use
Configuring the Memory Allocator
Automatically Replacing
malloc
and Other C/C++ Functions for Dynamic Memory Allocation
Windows* OS C/C++ Dynamic Memory Interface Replacement
Linux* OS C/C++ Dynamic Memory Interface Replacement
The Task Scheduler
Task-Based Programming
When Task-Based Programming Is Inappropriate
How Task Scheduler Works
Task Scheduler Bypass
Guiding Task Scheduler Execution
Design Patterns
Agglomeration
Elementwise
Odd-Even Communication
Wavefront
Reduction
Divide and Conquer
GUI Thread
Non-Preemptive Priorities
Lazy Initialization
Local Serializer
Fenced Data Transfer
Reference Counting
General References
Migrating from Threading Building Blocks (TBB)
Migrating from tbb::task_scheduler_init
Migrating from low-level task API
Mixing two runtimes
Constrained APIs
Appendix A Costs of Time Slicing
Appendix B Mixing With Other Threading Packages
References
oneTBB API Reference
oneapi::tbb::info namespace
parallel_for_each Body semantics and requirements
parallel_sort ranges interface extension
Type-specified message keys for join_node
Scalable Memory Pools
memory_pool
fixed_pool
memory_pool_allocator
Helper Functions for Expressing Graphs
Constructors for Flow Graph nodes
follows
and
precedes
function templates
make_node_set
function template
make_edges
function template
concurrent_lru_cache
task_arena::constraints extensions
oneapi::tbb::info namespace extensions
task_group extensions
The customizing mutex type for
concurrent_hash_map
Notices and Disclaimers
open issue
Index
Symbols
|
C
|
D
|
F
|
G
|
H
|
L
|
M
|
N
|
O
|
P
|
R
|
S
|
T
|
U
|
V
Symbols
~concurrent_lru_cache (C++ function)
~handle (C++ function)
~mutex (C++ function)
~rw_mutex (C++ function)
~task_scheduler_handle (C++ function)
C
concurrent_lru_cache (C++ function)
core_type (C++ member)
core_types (C++ function)
D
default_concurrency (C++ function)
defer (C++ function)
F
finalize (C++ function)
,
[1]
fixed_pool (C++ function)
G
get (C++ function)
H
handle (C++ function)
,
[1]
L
lock (C++ function)
,
[1]
lock_shared (C++ function)
M
max_concurrency (C++ member)
max_threads_per_core (C++ member)
memory_pool (C++ function)
memory_pool_allocator (C++ function)
,
[1]
mutex (C++ function)
N
numa_id (C++ member)
O
operator bool (C++ function)
,
[1]
operator= (C++ function)
,
[1]
operator[] (C++ function)
P
parallel_sort (C++ function)
,
[1]
R
ReaderWriterMutex::scoped_lock::is_writer (C++ function)
release (C++ function)
run (C++ function)
run_and_wait (C++ function)
rw_mutex (C++ function)
S
scoped_lock (C++ class)
,
[1]
set_core_type (C++ function)
set_max_concurrency (C++ function)
set_max_threads_per_core (C++ function)
set_numa_id (C++ function)
T
task_scheduler_handle (C++ function)
,
[1]
try_lock (C++ function)
,
[1]
try_lock_shared (C++ function)
U
unlock (C++ function)
,
[1]
unlock_shared (C++ function)
V
value (C++ function)