ADALTA è Unico Elite Reseller italiano per i prodotti Intel Software
Parallel Programming at Your Fingertips
Intel® Threading Building Blocks
(Intel® TBB) is a widely used C++ library for shared memory parallel
programming and heterogeneous computing (intra-node distributed memory
programming). The library provides a wide range of features for parallel
programming that include:
Generic parallel algorithms
A scalable memory allocator
Work-stealing task scheduler
Low-level synchronization primitives
Use this library-only solution for
task-based parallelism. It does not require any special compiler support
and has ports to multiple architectures that include Intel®
architectures and Arm*.
Get the Product
Threading Building Blocks (TBB) is
available as a part of the following tool suites.
Extended task_arena interface to simplify development of NUMA-aware applications that specifically enable composable, scalable performance within.
Continued support for resumable
tasks that allow the user to suspend task execution at a specific point
and resume it later, which reduces code complexity when integrating I/O
threads in compute-intensive applications.
Generic Parallel Algorithms: An efficient, scalable way to exploit the power of multicore without having to start from scratch.
Flow Graph: A set of classes to express parallelism as a graph of compute dependencies or data flows.
Concurrent Containers: Concurrent access and a scalable alternative to containers that are externally locked for thread safety.
Memory Allocation & Task Scheduling
Task Scheduler: A sophisticated work-scheduling engine that empowers parallel algorithms and the Flow Graph.
Memory Allocation: A scalable memory manager and false-sharing free allocators.
Threads & Synchronization
Synchronization Primitives: Atomic operations, a variety of mutexes with different properties, and condition variables
Timers and Exceptions: Thread-safe timers and exception classes
Threads: Operating system API wrappers
Thread Local Storage: Efficient implementation for an unlimited number of thread-local variables
Conditional Numerical Reproducibility
Ensure deterministic associativity for floating-point arithmetic results with the new template function: parallel_deterministic_reduce.
Support for C++11 Lambda Expressions
Intel TBB can be used with C++11
compilers and supports lambda expressions. For developers using parallel
algorithms, lambda expressions reduce the time and code needed by
removing the requirement for separate objects or classes.
Specify logical parallelism instead
of threads. Its runtime library automatically maps logical parallelism
onto threads in a way that makes efficient use of processor resources,
making it less tedious and more efficient.
Target threading for performance.
The software is also compatible with other threading packages. This
gives you the flexibility to leave your legacy code as-is, and use TBB
for new implementations.
programming, enabling multiple threads to work on different parts of a
collection. This programming scales well to larger numbers of processors
by dividing the collection into smaller pieces. Program performance
increases as you add processors.
Generic programming enables you to
write the best possible algorithms with the fewest constraints. For
example: Interfaces for the C++ Standard Template Library (STL) are
specified by requirements on types.
Support heterogeneous computing through the Flow Graph Designer.