What’s New in Intel® Threading Building Blocks 3.0

After much hard work, extensive debate, prioritization, and efforts to eke out the last few percentages of performance gains, Intel® Threading Building Blocks (Intel® TBB) version 3.0 has arrived! With it come several new features and improvements, available now for download.

In the upcoming weeks, look for detailed blogs from the TBB developers on several of these topics, starting with Arch Robison who will discuss making the quick and painless transition to Intel® TBB 3.0. Intel® TBB 3.0 fully preserves binary compatibility and thus simple library substitution, even without re-linking, should work for most applications. Arch will discuss the very few exceptions to this rule in his blog.

Here’s a brief summary of the major changes since the release of version 2.2:

Extended compatibility and interoperability support
• Added support for Microsoft* Visual Studio* 2010
• Intel® TBB 3.0 can run on top of Microsoft* Concurrency Runtime on Microsoft* Windows* 7
• Added Microsoft* Parallel Patterns Library*-compatible critical_section and reader_writer_lock
• Apple* Snow Leopard* support
C++0x feature support: Intel® TBB 3.0 now provides std::thread, std::lock_guard, std::unique_lock, and most of std::condition_variable

New and improved parallel pipeline
• Elegant new parallel_pipeline function provides a strongly-typed lambda-friendly pipeline interface

New and improved data containers
• New concurrent_unordered_map, an associative container that permits concurrent insertion and traversal with no visible locking; similar to C++0x std::unordered_map; based on a prototype developed at Microsoft for a future version of PPL
• Faster enumerable_thread_specific and combinable

Enhanced task scheduler features
Fire and forget tasks: To start worker tasks from a GUI, process tasks in FIFO-like fashion and increase starvation-resistance of tasks, see the new task::enqueue method
Independent task scheduling for foreign threads: the scheduler maps tasks to threads in a way that avoids causing a user-created thread to block directly or indirectly on another user-created thread
• A task_group_context can now be created and destroyed in different threads

Enhanced scalable memory allocator
• More reliable dynamic function substitution on Windows*
• Improved performance for large object allocation

New Design Patterns Manual
Get the most out of Intel® TBB: This excellent resource, for everyone from the novice to the expert, illustrates the power of Intel® TBB for implementing common parallel programming design patterns

For more complete information about compiler optimizations, see our Optimization Notice.

5 comments

Top
Alexey Kukanov (Intel)'s picture

ronaldr, I suggest you ask the question on the TBB forum; it's just more convenient place for discussions than blog comments. I would be glad to explain in more details how new fire-and-forget tasks are scheduled and executed, and help to match it to your use case if necessary.

rolandr's picture

Reading your changes about this new task scheduler strategy I wonder whether my initially reported problem that
Robert Reed later followed up on in his blog: "Under the hood: Learning more about task scheduling" will now behave the way I'd prefer to have it. Or did I interpret this wrong?

anonymous's picture

Hello, Terry; my name is Bob Scheier, a free-lance writer doing a story for InfoWorld on what developers can do to get higher performance out of client-side applications (such as on Windows 7) from today's multicore chips and multithreading operating systems. TBB seems like a key enabling technology our audience should know about -- was wondering if we could schedule a phone chat or if I could send you some questions via email? Thanks in advance;

Bob

Terry Wilmarth (Intel)'s picture

Arch's blog on Transitioning to TBB 3.0 is now available here: http://software.intel.com/en-us/blogs/2010/05/04/transitioning-to-tbb-30/

Terry Wilmarth (Intel)'s picture

Also check out James Reinders' excellent blog detailing the history of TBB leading up to the current release! It's here: http://software.intel.com/en-us/blogs/2010/05/04/tbb-30-new-today-version-of-intel-threading-building-blocks/

Add a Comment

Have a technical question? Visit our forums. Have site or software product issues? Contact support.