Intel® TBB


Intel® Threading Building Blocks (Intel® TBB)
Create reliable, portable, and scalable parallel applications with this award-winning C++ template library that abstracts threads to tasks.

Intel® Threading Building Blocks (Intel® TBB) is an award-winning C++ template library that abstracts threads to tasks to create reliable, portable, and scalable parallel applications. Just as the C++ Standard Template Library (STL) extends the core language, Intel TBB offers C++ users a higher level abstraction for parallelism. To implement Intel TBB, developers use familiar C++ templates and coding style, leaving low-level threading details to the library. It is also portable between architectures and operating systems. With Intel TBB, developers get the benefits of faster programming, scalable performance, and easier to maintain code.


Details

Available as Open Source

Benefits:
  • Enhanced Productivity - Intel TBB uses task-based abstractions that make it easier to get scalable and reliable parallel applications

  • Comprehensive - Intel TBB provides a set of components needed to implement parallel code

  • Future-proof Applications - Application performance automatically improves as processor core count increases

  • Portability - Intel TBB runs on a wide variety of OS's and platforms

Awards

Jolt 2009 Award

BOSSE Award



Dr. Mario Deilmann from Intel talks about Intel TBB and why game developers should consider using this template library.

 
Optimization Notice

Intel® Parallel Composer 2011 includes compiler options that optimize for instruction sets that are available in both Intel® and non-Intel microprocessors (for example SIMD instruction sets), but do not optimize equally for non-Intel microprocessors. In addition, certain compiler options for Intel® Parallel Composer 2011 are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instruction sets they implicate, please refer to "Intel® Parallel Composer 2011 Documentation > Intel® C++ Compiler 12.0 User and Reference Guides > Compiler Options." Many library routines that are part of Intel® Parallel Composer 2011 are more highly optimized for Intel microprocessors than for other microprocessors. While the compilers and libraries in Intel® Parallel Composer 2011 offer optimizations for both Intel and Intel-compatible microprocessors, depending on the options you select, your code and other factors, you likely will get extra performance on Intel microprocessors.

While the paragraph above describes the basic optimization approach for Intel® Parallel Composer 2011, with respect to Intel's compilers and associated libraries as a whole, Intel® Parallel Composer 2011 may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include Intel® Streaming SIMD Extensions 2 (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel® SSE3), and Supplemental Streaming SIMD Extensions 3 (Intel® SSSE3) instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors.

Intel recommends that you evaluate other compilers to determine which best meet your requirements.



Enhanced Productivity

Intel TBB uses task-based abstractions that make it easier to get scalable and reliable parallel applications with fewer lines of code. Task-based algorithms, containers, and synchronization primitives simplify parallel application development.



Side-by-side comparison on the left shows equivalent Windows* thread functionality that requires significantly more code to make a 2D ray tracing program, Tachyon, correctly threaded. Linux* and Mac OS X* developers can expect similar results.



Comprehensive

Intel TBB provides a suite of components that help simplify and speed development of scalable, high performance parallel applications. It provides parallel algorithms, concurrent containers, task scheduling, scalable memory allocation, and synchronization primitives. In addition, the runtime library provides an optimal-size thread pool; task granularity and performance-oriented scheduling; automatic load balancing through task stealing; and cache efficiency and memory reuse. Italic text in table means “new function



Future-proof Applications

Application performance automatically improves as processor core count increases by using abstract tasks. Sophisticated task scheduler dynamically maps tasks to threads to balance the load among available cores, preserve cache locality, and maximize parallel performance.



Excellent scalability and improved performance using Intel TBB versus a serial implementation. Windows and Mac OS X developers can expect similar results.




Portability

Intel TBB is validated and commercially supported on Windows*, Linux*, and Mac OS* platforms. It is also available on FreeBSD*, IA Solaris*, XBox* 360, and PowerPC-based systems via the open source community. Organizations can expand their customer base by using a production-ready, open solution for parallelism that is available on a broad range of platforms.





To learn more about the Intel® Threading Building Blocks, download the product in-depth ›

    Enhancements in Intel Threading Building Blocks 3.0 include:


    • Extended compatibility and interoperability support for Microsoft Visual Studio 2010 Parallel Patterns Library* (PPL) and Concurrency Runtime* (ConcRT).
    • Added Microsoft Windows* 7, and Apple Mac OS* Snow Leopard support
    • Enhanced Task Scheduler provides starvation-proof scheduling tasks for queue-like work; Master Thread Isolation improves task scheduling predictability and responsiveness.
    • Enhanced Memory Allocator includes performance optimization for large-block allocations
    • Expanded lambdas support provides C++ 0x condition variable; parallel_pipeline a strongly typed lambda friendly interface for building and running pipelines; new container concurrent_unordered_map support
Here are some of the resources to teach you how-to use the product. Be sure to go to the Intel® Learning Lab Portal for a complete offering of videos, whitepapers, and other resources to learn how to take advantage of this product.




 
Gordon Bradley, Maya Performance Team Lead, Autodesk

"The Maya team has successfully used Intel's TBB technology to internally parallelize Maya for several releases. Now thanks to Intel, TBB 2.2 lets Maya plug-in developers access the same advanced parallelism features that we've used at no additional charge."


unreal_logo.jpg

 

"Bringing Intel into the Integrated Partners Program and integrating TBB into Unreal Engine 3 ensures our licensees are within reach of the best development tools available," said Dr. Michael Capps, president of Epic Games. "This partnership will help minimize the work required to author multithreaded applications for Unreal-powered games and, in the long term, provide developers with greater access to Intel Tools.."


DreamWorks.jpg
Ron Henderson, R&D FX Manager, DreamWorks Animation

"The Intel® TBB malloc was an important tool in achieving good parallel speedups for our threaded applications, and a drop-in replacement for the memory allocator in the C standard library."


Quantifi.jpg
Mark Traudt, CTO, Quantifi Solutions

"By utilizing Intel® Threading Building Blocks (Intel® TBB), Quantifi was able to speed up calculation time by as much as eight times on a standard desktop PC."


Exocortex+Logo.png
Ben Houston, CTO, Exocortex Technologies

"After a couple days of integrating Intel® Threading Building Blocks (TBB), the team here at Exocortex got a 2.5X performance boost. Our fluid simulation code is now on track to scale in a future proof manner, and we look forward to digging deeper into the Intel Parallel Studio. The huge ROI we got with TBB was fantastic and our only regret is we didn't investigate it sooner."


Progress+Apama+Logo.png
Dr. Kev Palfreyman, Engineering Manager, Progress Apama

"Performance is critical to the Progress Apama Complex Event Processing (CEP) engine. In our recent 4.0 release we incorporated the next Intel TBB scalable allocator and observed up to 30-fold speed improvements in some of our customer sourced memory intensive benchmarks. The Intel TBB libraries have proved to be extremely easy to use and reliable in our testing. We are very pleased with the results so far and are actively investigating other parts of TBB for future releases of Progress Apama."


The9+Development+Center+Logo.jpg
Guoli Chen, Development Manager, The9 Development Center

"After using Intel TBB, we achieved 3.5 times the performance on our game server on a 4-core machine. I think that the best benefit of using TBB is being able to utilize multi-core processors efficiently and saving development time simultaneously."


Intel® Threading Building Blocks Support

Browse the Intel® Threading Building Blocks Knowledge Base



Ask Experts Online


Search and post a new question to the Intel® Software Network Forum for Intel® Threading Building Blocks. The forums allow you to search a growing archive of technical questions and answers from both Intel experts and our developer community. If an answer can't be found in Search, you can ask a new question. An Intel® Software Development Products Registration Center login will allow you to participate in the Intel® Software Network User Forums without any additional registration.



Get Help from Intel


If you do not find what you need above:
Submit Software Tools bugs through Intel® Premier Support. Registration is required. Click here for more information.