Get Link
|
Sync TOC
|
<<
|
>>
Intel® Threading Building Blocks Documenation
Legal Information
Getting Help and Support
Introducing the Intel® Threading Building Blocks (Intel® TBB)
Intel TBB Benefits
Notational Conventions
Intel® Threading Building Blocks (Intel® TBB) User Guide
Package Contents
Debug Versus Release Libraries
Scalable Memory Allocator
Windows* OS
Microsoft Visual Studio* Code Examples
Integration Plug-In for Microsoft Visual Studio* Projects
Linux* OS
OS X* Systems
Open Source Version
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_do
Working on the Assembly Line: pipeline
Using Circular Buffers
Throughput of pipeline
Non-Linear Pipelines
Summary of Loops and Pipelines
Exceptions and Cancellation
Cancellation Without An Exception
Cancellation and Nested Parallelism
Containers
concurrent_hash_map
More on HashCompare
concurrent_vector
Advanced Idiom: Waiting on an Element
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
Atomic Operations
Why atomic
Memory Consistency
Timing
Memory Allocation
Which Dynamic Libraries to Use
Automatically Replacing malloc and Other C/C++ Functions for Dynamic Memory Allocation
Linux* OS C/C++ Dynamic Memory Interface Replacement
Windows* OS C/C++ Dynamic Memory Interface Replacement
The Task Scheduler
Task-Based Programming
When Task-Based Programming Is Inappropriate
Simple Example: Fibonacci Numbers
How Task Scheduling Works
Useful Task Techniques
Recursive Chain Reaction
Continuation Passing
Scheduler Bypass
Recycling
Empty Tasks
General Acyclic Graphs of Tasks
Task Scheduler Summary
Design Patterns
Agglomeration
Elementwise
Odd-Even Communication
Wavefront
Reduction
Divide and Conquer
GUI Thread
Non-Preemptive Priorities
Local Serializer
Fenced Data Transfer
Lazy Initialization
Reference Counting
Compare and Swap Loop
General References
Appendix A Costs of Time Slicing
Appendix B Mixing With Other Threading Packages
References
Intel® Threading Building Blocks Reference Manual
General Conventions
Terminology
Identifiers
Namespaces
Thread Safety
Environment
Version Information
Enabling Debugging Features
Feature Macros
Algorithms
Splittable Concept
split Class
Range Concept
blocked_range Template Class
blocked_range( Value begin, Value end, size_t grainsize=1 )
blocked_range( blocked_range& range, split )
blocked_range2d Template Class
blocked_range3d Template Class
Partitioners
auto_partitioner Class
affinity_partitioner
simple_partitioner Class
parallel_for Template Function
parallel_reduce Template Function
parallel_deterministic_reduce Template Function
parallel_scan Template Function
pre_scan_tag and final_scan_tag Classes
parallel_do Template Function
parallel_do_feeder class
parallel_for_each Template Function
pipeline Class
filter Class
thread_bound_filter Class
parallel_pipeline Function
filter_t Template Class
flow_control Class
parallel_sort Template Function
parallel_invoke Template Function
Containers
Container Range Concepts
concurrent_unordered_map and concurrent_unordered_multimap Template Classes
Construct, Destroy, Copy
Size and Capacity
Iterators
Modifiers
Observers
Lookup
Parallel Iteration
Bucket Interface
Hash Policy
concurrent_unordered_set and concurrent_unordered_multiset Template Classes
Construct, Destroy, Copy
Size and Capacity
Iterators
Modifiers
Observers
Lookup
Parallel Iteration
Bucket Interface
Hash Policy
concurrent_hash_map Template Class
Whole Table Operations
Concurrent Access
Concurrent Operations
Parallel Iteration
Capacity
Iterators
Global Functions
tbb_hash_compare Class
concurrent_queue Template Class
concurrent_bounded_queue Template Class
concurrent_priority_queue Template Class
concurrent_vector
Construction, Copy, and Assignment
Whole Vector Operations
Concurrent Growth
Access
Parallel Iteration
Capacity
Iterators
Flow Graph
Primary Components
Message Passing Protocol
Body Objects
flow::tuple Template Class
Dependency Flow Graph Example
Message Flow Graph Example
graph Class
sender Template Class
receiver Template Class
continue_msg Class
continue_receiver Class
graph_node Class
continue_node Template Class
function_node Template Class
source_node Class
multifunction_node Template Class
overwrite_node Template Class
write_once_node Template Class
broadcast_node Template Class
buffer_node Class
queue_node Template Class
priority_queue_node Template Class
sequencer_node Template Class
limiter_node Template Class
join_node Template Class
split_node Template Class
input_port Template Function
make_edge Template Function
remove_edge Template Function
copy_body Template Function
Thread Local Storage
combinable Template Class
enumerable_thread_specific Template Class
Whole Container Operations
Concurrent Operations
Combining
Parallel Iteration
Iterators
flattened2d Template Class
Whole Container Operations
Concurrent Operations
Iterators
Utility Functions
Memory Allocation
Allocator Concept
tbb_allocator Template Class
scalable allocator Template Class
C Interface to Scalable Allocator
cache_aligned_allocator Template Class
zero_allocator
aligned_space Template Class
Synchronization
Mutexes
Mutex Concept
Speculative locking (Transactional Lock Elision)
mutex Class
recursive_mutex Class
spin_mutex Class
speculative_spin_mutex Class
queuing_mutex Class
ReaderWriterMutex Concept
spin_rw_mutex Class
queuing_rw_mutex Class
null_mutex Class
null_rw_mutex Class
atomic Template Class
PPL Compatibility
critical_section
reader_writer_lock Class
C++11 Synchronization
Timing
tick_count Class
tick_count Members
tick_count::interval_t Class
Task Groups
task_group Class
Task Groups
task_group_status Enum
task_handle Template Class
make_task Template Function
structured_task_group Class
is_current_task_group_canceling Function
Task Scheduler
Scheduling Algorithm
task_scheduler_init Class
task_scheduler_init max_threads
task_scheduler_init
task Class
task Derivation
task Allocation
Explicit task Destruction
Recycling Tasks
Synchronization
task Context
Cancellation
Priority
Affinity
task Debugging
empty_task Class
task_list Class
task_group_context
task_group_context members
task_scheduler_observer
task_scheduler_observer Member
Catalog of Recommended task Patterns
Exceptions
tbb_exception
captured_exception
movable_exception ExceptionData
Specific Exceptions
Threads
thread Class
thread Class members
thread::id
this_thread Namespace
Appendices
Compatibility Features
parallel_while Template Class
Interface for constructing a pipeline filter
Debugging Macros
tbb::deprecated::concurrent_queue
Task Enqueuing Flow Graph
Interface for concurrent_vector
Interface for class task
tbb_thread Class
PPL Compatibility
Known Issues
Windows* OS
Community Preview Features
What is a Community Preview Feature?
Enabling a Community Preview Feature
Flow Graph
or_node Template Class
Run-time loader
runtime_loader Class
error_code load(char const * path[],int min_ver = TBB_INTERFACE_VERSION, int max_ver = INT_MAX)
Scalable Memory Pools
memory_pool Template Class
fixed_pool Class
memory_pool_allocator Template Class
Serial subset
tbb::serial::parallel_for()
concurrent_lru_cache Template Class
handle_object class
aggregator Class
aggregator Class Basic Interface
aggregator Class Expert Interface
task_arena Class
task_scheduler_observer Class extensions
speculative_spin_rw_mutex Class