tbb Namespace Reference

The namespace tbb contains all components of the library. More...


Classes

class  aligned_space
 Block of space aligned sufficiently to construct an array T with N elements. More...
struct  atomic
 Primary template for atomic. More...
struct  atomic< void * >
struct  atomic< bool >
class  blocked_range
 A range over which to iterate. More...
class  blocked_range2d
 A 2-dimensional range that models the Range concept. More...
class  blocked_range3d
 A 3-dimensional range that models the Range concept. More...
class  cache_aligned_allocator
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
class  cache_aligned_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
struct  tbb_hash_compare
 hash_compare - default argument More...
class  concurrent_hash_map
 Unordered map from Key to T. More...
class  concurrent_queue
 A high-performance thread-safe queue. More...
class  concurrent_vector
 Concurrent vector container. More...
class  mutex
 Wrapper around the platform's native reader-writer lock. More...
class  null_mutex
class  null_rw_mutex
class  parallel_do_feeder
 Class the user supplied algorithm body uses to add new tasks. More...
struct  pre_scan_tag
 Used to indicate that the initial scan is being performed. More...
struct  final_scan_tag
 Used to indicate that the final scan is being performed. More...
class  parallel_while
 Parallel iteration over a stream, with optional addition of more work. More...
class  simple_partitioner
 A simple partitioner. More...
class  auto_partitioner
 An auto partitioner. More...
class  affinity_partitioner
 An affinity partitioner. More...
class  filter
 A stage in a pipeline. More...
class  pipeline
 A processing pipeling that applies filters to items. More...
class  queuing_mutex
 Queuing lock with local-only spinning. More...
class  queuing_rw_mutex
 Reader-writer lock with local-only spinning. More...
class  recursive_mutex
 Mutex that allows recursive mutex acquisition. More...
class  scalable_allocator
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
class  scalable_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
class  spin_mutex
 A lock that occupies a single byte. More...
class  spin_rw_mutex_v3
 Fast, unfair, spinning reader-writer lock with backoff and writer-preference. More...
class  task_group_context
 Used to form groups of tasks. More...
class  task
 Base class for user-defined tasks. More...
class  empty_task
 task that does nothing. Useful for synchronization. More...
class  task_list
 A list of children. More...
class  task_scheduler_init
 Class representing reference to tbb scheduler. More...
class  tbb_allocator
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
class  tbb_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
class  bad_last_alloc
 Exception for concurrent containers. More...
class  tbb_exception
 Interface to be implemented by all exceptions TBB recognizes and propagates across the threads. More...
class  captured_exception
 This class is used by TBB to propagate information about unhandled exceptions into the root thread. More...
class  movable_exception
 Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread. More...
class  split
 Dummy type that distinguishes splitting constructor from copy constructor. More...
class  tick_count
 Absolute timestamp. More...

parallel_do

See also requirements on parallel_do Body.

template<typename Iterator, typename Body>
void parallel_do (Iterator first, Iterator last, const Body &body)
 Parallel iteration over a range, with optional addition of more work.
template<typename Iterator, typename Body>
void parallel_do (Iterator first, Iterator last, const Body &body, task_group_context &context)
 Parallel iteration over a range, with optional addition of more work and user-supplied context.

parallel_for

See also requirements on Range and parallel_for Body.

template<typename Range, typename Body>
void parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner=simple_partitioner())
 Parallel iteration over range with simple partitioner, or default partitioner if no partitioner is specified.
template<typename Range, typename Body>
void parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner)
 Parallel iteration over range with auto_partitioner.
template<typename Range, typename Body>
void parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner)
 Parallel iteration over range with affinity_partitioner.
template<typename Range, typename Body>
void parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with simple partitioner and user-supplied context.
template<typename Range, typename Body>
void parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with auto_partitioner and user-supplied context.
template<typename Range, typename Body>
void parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with affinity_partitioner and user-supplied context.

parallel_reduce

See also requirements on Range and parallel_reduce Body.

template<typename Range, typename Body>
void parallel_reduce (const Range &range, Body &body, const simple_partitioner &partitioner=simple_partitioner())
 Parallel iteration with reduction and simple_partitioner, or no partitioner specified.
template<typename Range, typename Body>
void parallel_reduce (const Range &range, Body &body, const auto_partitioner &partitioner)
 Parallel iteration with reduction and auto_partitioner.
template<typename Range, typename Body>
void parallel_reduce (const Range &range, Body &body, affinity_partitioner &partitioner)
 Parallel iteration with reduction and affinity_partitioner.
template<typename Range, typename Body>
void parallel_reduce (const Range &range, Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, simple partitioner and user-supplied context.
template<typename Range, typename Body>
void parallel_reduce (const Range &range, Body &body, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, auto_partitioner and user-supplied context.
template<typename Range, typename Body>
void parallel_reduce (const Range &range, Body &body, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, affinity_partitioner and user-supplied context.
template<typename Range, typename Value, typename RealBody, typename Reduction>
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner=simple_partitioner())
 Parallel iteration with reduction and simple_partitioner, or no partitioner specified.
template<typename Range, typename Value, typename RealBody, typename Reduction>
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const auto_partitioner &partitioner)
 Parallel iteration with reduction and auto_partitioner.
template<typename Range, typename Value, typename RealBody, typename Reduction>
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, affinity_partitioner &partitioner)
 Parallel iteration with reduction and affinity_partitioner.
template<typename Range, typename Value, typename RealBody, typename Reduction>
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, simple partitioner and user-supplied context.
template<typename Range, typename Value, typename RealBody, typename Reduction>
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, auto_partitioner and user-supplied context.
template<typename Range, typename Value, typename RealBody, typename Reduction>
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, affinity_partitioner and user-supplied context.

parallel_scan

See also requirements on Range and parallel_scan Body.

template<typename Range, typename Body>
void parallel_scan (const Range &range, Body &body, const simple_partitioner &partitioner=simple_partitioner())
 Parallel prefix with simple_partitioner.
template<typename Range, typename Body>
void parallel_scan (const Range &range, Body &body, const auto_partitioner &partitioner)
 Parallel prefix with auto_partitioner.

parallel_sort

See also requirements on iterators for parallel_sort.

template<typename RandomAccessIterator, typename Compare>
void parallel_sort (RandomAccessIterator begin, RandomAccessIterator end, const Compare &comp)
 Sorts the data in [begin,end) using the given comparator.
template<typename RandomAccessIterator>
void parallel_sort (RandomAccessIterator begin, RandomAccessIterator end)
 Sorts the data in [begin,end) with a default comparator std::less<RandomAccessIterator>.
template<typename T>
void parallel_sort (T *begin, T *end)
 Sorts the data in the range [begin,end) with a default comparator std::less<T>.

Typedefs

typedef spin_rw_mutex_v3 spin_rw_mutex
typedef std::size_t stack_size_type
typedef internal::task_scheduler_observer_v3 task_scheduler_observer
typedef void(*) assertion_handler_type (const char *filename, int line, const char *expression, const char *comment)
 Type for an assertion handler.

Enumerations

enum  memory_semantics { __TBB_full_fence, acquire, release }
 Specifies memory fencing. More...

Functions

 __TBB_DECL_ATOMIC (__TBB_LONG_LONG) __TBB_DECL_ATOMIC(unsigned __TBB_LONG_LONG) __TBB_DECL_ATOMIC(long) __TBB_DECL_ATOMIC(unsigned long) __TBB_DECL_ATOMIC_ALT(unsigned
size_t __TBB_DECL_ATOMIC_ALT (int, ptrdiff_t) __TBB_DECL_ATOMIC(unsigned) __TBB_DECL_ATOMIC(int) __TBB_DECL_ATOMIC(unsigned short) __TBB_DECL_ATOMIC(short) __TBB_DECL_ATOMIC(char) __TBB_DECL_ATOMIC(signed char) __TBB_DECL_ATOMIC(unsigned char) __TBB_DECL_ATOMIC(wchar_t) template< typename T > struct atomic< T * >
template<typename T, typename U>
bool operator== (const cache_aligned_allocator< T > &, const cache_aligned_allocator< U > &)
template<typename T, typename U>
bool operator!= (const cache_aligned_allocator< T > &, const cache_aligned_allocator< U > &)
template<typename Key, typename T, typename HashCompare, typename A1, typename A2>
bool operator== (const concurrent_hash_map< Key, T, HashCompare, A1 > &a, const concurrent_hash_map< Key, T, HashCompare, A2 > &b)
template<typename Key, typename T, typename HashCompare, typename A1, typename A2>
bool operator!= (const concurrent_hash_map< Key, T, HashCompare, A1 > &a, const concurrent_hash_map< Key, T, HashCompare, A2 > &b)
template<typename Key, typename T, typename HashCompare, typename A>
void swap (concurrent_hash_map< Key, T, HashCompare, A > &a, concurrent_hash_map< Key, T, HashCompare, A > &b)
template<typename T, class A1, class A2>
bool operator== (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
template<typename T, class A1, class A2>
bool operator!= (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
template<typename T, class A1, class A2>
bool operator< (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
template<typename T, class A1, class A2>
bool operator> (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
template<typename T, class A1, class A2>
bool operator<= (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
template<typename T, class A1, class A2>
bool operator>= (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
template<typename T, class A>
void swap (concurrent_vector< T, A > &a, concurrent_vector< T, A > &b)
template<typename T, typename U>
bool operator== (const scalable_allocator< T > &, const scalable_allocator< U > &)
template<typename T, typename U>
bool operator!= (const scalable_allocator< T > &, const scalable_allocator< U > &)
template<typename T, typename U>
bool operator== (const tbb_allocator< T > &, const tbb_allocator< U > &)
template<typename T, typename U>
bool operator!= (const tbb_allocator< T > &, const tbb_allocator< U > &)
assertion_handler_type __TBB_EXPORTED_FUNC set_assertion_handler (assertion_handler_type new_handler)
 Set assertion handler and return previous value of it.
void __TBB_EXPORTED_FUNC assertion_failure (const char *filename, int line, const char *expression, const char *comment)
 Process an assertion failure.
int __TBB_EXPORTED_FUNC TBB_runtime_interface_version ()
 The function returns the interface version of the TBB shared library being used.
tick_count::interval_t operator- (const tick_count &t1, const tick_count &t0)


Detailed Description

The namespace tbb contains all components of the library.

Enumeration Type Documentation

enum tbb::memory_semantics

Specifies memory fencing.

Enumerator:
__TBB_full_fence  For internal use only.
acquire  Acquire fence.
release  Release fence.


Function Documentation

void __TBB_EXPORTED_FUNC tbb::assertion_failure ( const char *  filename,
int  line,
const char *  expression,
const char *  comment 
)

Process an assertion failure.

Normally called from __TBB_ASSERT macro. If assertion handler is null, print message for assertion failure and abort. Otherwise call the assertion handler.

int __TBB_EXPORTED_FUNC tbb::TBB_runtime_interface_version (  ) 

The function returns the interface version of the TBB shared library being used.

The version it returns is determined at runtime, not at compile/link time. So it can be different than the value of TBB_INTERFACE_VERSION obtained at compile time.


Copyright © 2005-2009 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others.