Threading Building Blocks from Intel




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

Intel® Threading Building Blocks (Intel® TBB) is a widely used, award-winning C++ template library for creating reliable, portable, and scalable parallel applications. Use Intel® TBB for a simple and rapid way of developing robust task-based parallel applications that scale to available processor cores, are compatible with multiple environments, and are easier to maintain. Intel® TBB is the most proficient way to implement future-proof parallel applications that tap into the power and performance of multicore and manycore hardware platforms.


===

Details

Available as open source

Benefits:
  • Enhanced Productivity and Reliability - Intel® TBB provides abstractions that make it easier to get scalable and reliable parallel applications with fewer lines of code

  • Scalability with Future-proofing - Application performance automatically improves as processor core count increases by using abstract tasks

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

  • Portability - Intel TBB runs on a wide variety of OSs and platforms

Intel® Threading Building Blocks is also available within development tool suites, including:

Awards

Jolt 2009 Award

BOSSE Award


Using Intel Threading Building Blocks in Gaming

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


Enhanced Productivity and Reliability

Intel Threading Building Blocks 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.



 

Scalability with Future-proofing

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.

Intel® Threading Building Blocks yields linear scaling on a 40 core system in these three example applications


Comprehensive

Intel Threading Building Blocks 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. Version 4.0 expands usage models and improves performance and usability. Text in bold italics indicates new functions for v4.0.





Portability

Intel Threading Building Blocks 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.





Learn more in the Intel® Threading Building Blocks, Product Brief ›

September 8, 2011: Announcing expanded usage models and improved performance and usability with TBB 4.0

Intel® Threading Building Blocks (Intel® TBB 4.0) introduces several new features.

Flow Graph: API Extends applicability of Intel® TBB to event-driven/reactive programming models
Concurrent Unordered Set: Thread-safe container to store and access user objects
Memory Pools: Enables greater flexibility and performance by getting thread-safe and scalable object allocation
Generic GCC* Atomics Support: Library portability enables development of Intel® TBB-based solutions on a broader range of platforms
Task and task group priorities: Provides ability to specify task execution order based on three priority levels (low, normal, and high)
Concurrent Priority Queue: A queue that allows pulling data out in a user-defined priority order

Questions, feedback, and contributions on the new features are always welcomed. Download Intel TBB 4.0 today

December 23, 2010: Announcing the Graph Community Preview (CP) Feature

Following on the recent introduction of the first CP feature, the concurrent_priority_queue, the Intel® Threading Building Blocks (Intel®TBB) team introduced a new feature today in Intel TBB 3.0 Update 5 -- the Graph interface. The Graph interface is the culmination of years of work to meet the needs of developers who would like to utilize Intel TBB for irregular problem types like those that use events or message passing. We are particularly interested in community feedback on whether the graph is helping produce more elegant and high-performing implementations in real-world applications. As always, community questions, feedback, and contributions are welcome.

Useful links:

December 8, 2010: Announcing Community Preview (CP) Features

The Intel® Threading Building Blocks (Intel TBB) team is happy to introduce the use of Community Preview (CP) features into Intel TBB today. CP features are a great way for Intel to show new and interesting capabilities to our community and customers before they have been finalized. As part of our commitment to openness with all of the Intel® Parallel Building Blocks technologies, we want our users to know what we are working on to make Intel TBB better. We also want to gain your feedback on upcoming features so that we can make sure we continue to meet your needs today and in the future.

These features are fully tested but are not officially supported or necessarily fully documented. Given the early nature of these features, we don't guarantee that they won't be removed or modified in ways that break compatibility with pre-production versions. In addition, they are turned off by default so they won't impact your application unless you want to give them a try. We look forward to hearing your response in the forum to our first CP feature, the Concurrent Priority Queue, and to the use of CP features in general.

Useful links:

Enhancements in Intel Threading Building Blocks 3.0

  • 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
Review the resources below to learn how to use Intel Threading Building Blocks. 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 Intel® Software Development products.

 




pacificnw.jpg

 


Robert Link, GCAM Project Scientist, Pacific Northwest National Laboratory

"Using Intel TBB's new flow graph feature, we accomplished what was previously not possible, parallelize a very sizable task graph with thousands of interrelationships - all in about a week."



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. "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 four-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

Supported Linux* Distributions



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.