Ready to use parallel algorithms:
Select from a library of highly-efficient parallel algorithm templates, and rapidly obtain the advantages of multi-core Intel processors.
- Quickly employ commonly needed algorithms designed for parallel performance and scalability.
- Generic templates let you easily tailor these algorithms to your needs.
- Supports easy plug-in deployment into applications to deliver scalable software speed-up, optimizing for both available cores and cache locality.
- Reduce the work required to produce threaded software in many cases, by means of pre-built parallel constructs.
Cross platform support:
Write applications once and deploy on multiple OS's.
- Provides a single solution for Windows, Linux, and Mac OSon 32-bit and 64-bit platforms using Intel®, Microsoft, and GNU compilers.
- Supports industry-leading compilers from Intel, Microsoft and GNU.
- Speeds deployment of applications on multiple multi-core platforms.
Task based parallelism:
Specify threading functionality in terms of logical tasks instead of physical threads.
- Lets developer focus on higher level of scalable task patterns instead of low-level thread mechanics
- Uses proven data-decomposition abstractions that efficiently use multiple cores
- Enables automatic load balancing
- Efficiently supports nested parallelism, allowing parallel components to be built from other parallel components
Library based solution:
Get highly optimized parallel functionality now with minimal effort.
- Your C++ application simply calls the Threading Building Blocks library
- Standard C++ - no need to rewrite code in a new language
- Compatible with other threading packages
- Allows unlimited distribution of the runtime libraries with your software
- Seamlessly integrates into existing development environments
Highly concurrent containers:
Optimize the processor's ability to perform simultaneous tasks.
- Simplify multithreaded application development with interfaces designed for thread-safety and high concurrency.
- Improve application quality by employing pre-tested data structures.
- Improve application performance by enabling multiple execution cores or processors to work together more efficiently.
Automatic grainsize calculation:
Intel® TBB can automatically calculate grainsize to control the granularity of a task in order to get the best performance on multi-core processors.
Library Components
Intel® Threading Building Blocks contains the following library components:
Generic Parallel Algorithms
- parallel_for
- parallel_reduce
- parallel_scan
- parallel_sort
- parallel_while
- pipeline
- blocked_range (for use with algorithms, containers, etc.)
- blocked_range2d (for use with algorithms, containers, etc.)
Thread-Safe Containers
- concurrent_hash_map
- concurrent_queue
- concurrent_vector
Synchronization Primitives
- atomic
- spin_mutex
- spin_rw_mutex (reader-writer spin_mutex)
- queuing_mutex
- queuing_rw_mutex (reader-writer queuing_mutex)
- mutex
Task Scheduler
Memory Allocation
- scalable_allocator
- cache_aligned_allocator
- aligned_space (for use with algorithms, etc.)
Timing
Compatibility
The Intel Threading Building Blocks are cross-platform (Windows, Linux, and Mac OS), support 32-bit and 64-bit applications as well as work with Intel, Microsoft and GNU compilers.
This library is specifically designed to work in concert with other threading technologies, such as Win32*, POSIX*, and OpenMP* threads, providing a high degree of design and development flexibility. The templates implemented in Intel Threading Building Blocks rely on generic programming in order to provide high-speed and flexible algorithms with very few implementation constraints.
Intel Threading Building Blocks adds to the functionality of Intel® Thread Checker, Intel® Thread Profiler, and the Intel® Compilers, to enable the rapid implementation of high-performance threads in applications.
Intel Threading Building Blocks supports the following processors:
- Intel® Pentium® 4 processor
- Intel® Xeon® processor
- Intel Pentium D processor
- 64-bit Intel Xeon processor
- Intel® Core™ Solo processor
- Intel Core Duo processor
- Intel Core 2 Duo processor
- Intel® Itanium® 2 processor (Linux systems only)
- Non Intel processors compatible with the above processors
Intel Threading Building Blocks supports the following operating systems:
Microsoft Windows Systems
- Microsoft Windows XP Professional
- Microsoft Windows Server 2003
- Microsoft Windows Vista
Linux Systems
- Red Hat Enterprise Linux 3, 4 and 5 (when using Red Hat Enterprise Linux 4 with Intel Itanium processors, operating system Update 2 or higher is recommended)
- Red Hat Fedora Core 4, 5 and 6 (not with Intel Itanium processors)
- Asianux 2.0
- Red Flag DC Server 5.0
- Haansoft Linux Server 2006
- Miracle Linux v4.0
- SuSE Linux Enterprise Server (SLES) 9 and 10
- SGI Propack 4.0 (with Intel(R) Itanium(R) processors only)
- SGI Propack 5.0 (not with IA-32 architecture processors)
- Mandriva/Mandrake Linux 10.1.06 (not with Intel Itanium processors)
- Turbolinux GreatTurbo* Enterprise Server 10 SP1 (not with Intel Itanium processors)
Mac OS Systems
- Mac OS X 10.4.4 or higher, 10.5
Intel Threading Building Blocks supports the following compilers:
- Microsoft Visual C++ 7.1 (Microsoft Visual Studio .NET 2003, Windows systems only)
- Microsoft Visual C++ 8.0 (Microsoft Visual Studio 2005, Windows systems only)
- Intel® C++ Compiler 9.0 or higher (Windows and Linux systems)
- Intel® C++ Compiler 9.1 or higher (Mac OS systems)
- For each supported Linux operating system, the standard gcc version provided with that operating system is supported, including: 3.2, 3.3, 3.4, 4.0, 4.1
- For each supported Mac OS operating system, the standard gcc version provided with that operating system is supported, including: 4.0.1 (Mac OS X Xcode* Tools 2.2.1 or higher)
System Requirements for Microsoft Windows Systems
Hardware
- Intel® Pentium® 4 processor minimum (Intel Pentium 4 processor supporting Hyper-Threading Technology~ (HT Technology) or Intel® Xeon® processor recommended)
- 512 MB of RAM minimum (1 GB of RAM recommended)
- 300 MB of disk space
Software
- Microsoft Windows XP Professional or Microsoft Windows Server 2003
- Intel® C++ Compiler 9.0 for Windows or higher
- Microsoft Visual C++ 7.1 or 8.0
- Microsoft Internet Explorer 6.0 or higher
- (Recommended) Adobe Reader 6.0 or higher
System Requirements for Linux Systems
Hardware
- Intel® Pentium® 4 processor minimum (Intel Pentium 4 processor supporting Hyper-Threading Technology~ (HT Technology) or Intel® Xeon® processor recommended)
- 512 MB of RAM minimum (1 GB of RAM recommended)
- 300 MB of disk space
Software
One of the following operating systems:
- Red Hat Enterprise Linux 3 or 4
- Red Hat Fedora Core 4 (not supported on Itanium-based systems)
- Red Flag DC Server (not supported on Itanium-based systems)
- SuSE Linux Enterprise Server 9
- SGI Propack 4.0 (supported on Itanium-based systems only)
One of the following compilers:
- Intel® C++ Compiler 9.0 for Linux or higher
- GCC 3.2, 3.3, 3.4, or 4.0
System Requirements for Mac OS Systems with Intel Processors
Hardware
- Intel® Core™ Solo processor minimum (Intel® Core™ Duo processor recommended)
- 512 MB of RAM minimum (1 GB of RAM recommended)
- 300 MB of disk space
Software
Minimum Requirements:
- Mac OS X 10.4.4
- Intel® C++ Compiler 9.1 for Mac OS or higher
Recommended Requirements:
Mac OS X Developer Tools
Adobe Reader6.0 or higher
Web browser
~Hyper-Threading Technology requires a computer system with an Intel® Pentium® 4 processor supporting HT Technology and a Hyper-Threading Technology enabled chipset, BIOS, and operating system. Performance will vary depending on the specific hardware and software you use. See http://www.intel.com/info/hyperthreading for more information including details on which processors support HT Technology.