Home » Community » Forums » News Discussion » Intel® Threading Building Blocks 2.0 (TBB) Released
  Intel sponsors gamedev.net search:   
[Control Panel] [Register] [Bookmarks] [Who's Online] [Active Topics] [Stats] [FAQ] [Search]

Intel® Threading Building Blocks 2.0 (TBB) Released

From: http://www.threadingbuildingblocks.org/

Intel (R) Threading Building Blocks (TBB) offers a rich and complete approach to expressing parallelism in a C++ program. It is a library that helps you leverage multi-core processor performance without having to be a threading expert. Threading Building Blocks is not just a threads-replacement library. It represents a higher-level, task-based parallelism that abstracts platform details and threading mechanism for performance and scalability.

Why TBB?

For developers, the clear benefits of Threading Building Blocks are:

TBB significantly reduces the number of lines of code required to develop multithreaded applications;

TBB significantly reduces the programming complexity for developing multithreaded applications (by abstracting many details of thread management);

TBB's task manager automatically analyzes the system the software is running on, chooses the optimal number of threads, and performs load balancing that spreads out the work evenly across all processor cores;

As a result, TBB threaded applications automatically scale to fully utilize all available processing cores on whatever computer they run on - including future systems that will have many more cores than are available (or affordable) today.

If you have experience developing multithreaded C++ software (new applications, or conversion of legacy applications for operation on multiprocessor/multicore systems), you owe it to yourself to experiment with Threading Building Blocks: try recoding a few sections of software you've multithreaded using traditional threads, and notice the difference.


ADVERTISEMENT

 previous story  next story 
 "Intel® Threading Building Blocks 2.0 (TBB) Released" Discussion
Post Reply 
Heyas
This is an Intel tech right?
does anyone have any idea on how well it will work with AMD processors?

Yours Truly
K

  User Rating: 1025   |  Rate This User   Send Private MessageView ProfileReport this Post to a Moderator | Link

You can bet that it's heavily optimized for the Intel processor. However, it seems that it should also work with AMD processors (although it's obvious that Intel engineers will not spend their time optimizing their library).


  User Rating: 1828   |  Rate This User   Send Private MessageView ProfileReport this Post to a Moderator | Link

I was a little interested until i saw that its GPL.

  User Rating: 1185   |  Rate This User   Send Private MessageView ProfileReport this Post to a Moderator | Link

It's GPL with runtime exclusion. That means you can use it as a library, and all the macros in the library, without having to open up your own code.

  User Rating: 1643   |  Rate This User   Send Private MessageView ProfileReport this Post to a Moderator | Link

Threading Building Blocks is actually intended as an extension to the C++ standard, which means it should improve threading efficiency on non-Intel processors just as much as it improves efficiency on Intel processors. The design of TBB is based on the design of the Standard Template Library (STL), which is a part of the C++ standard.

So -- I don't think people should consider TBB to be something that works best for Intel processors. If that was the case, why would anyone use it? Given that anyone who develops software for Windows knows that an enormous number of users of their software will be running it on AMD processors.

Anyway, if you visit ThreadingBuildingBlocks.org and follow my blog there, you'll see the results of my testing of TBB on my new 64-bit dual-core AMD system. From my investigations of TBB to date, I'll be very surprised if the improvement on Intel processors exceeds the improvement on AMD processors.



  User Rating: 1015   |  Rate This User   Send Private MessageView ProfileReport this Post to a Moderator | Link

I started developing an application recently that uses OpenMP to handle threading (since the newest version of GCC supports it). Does anyone have any experience here with both and know how they stack up against each other? OpenMP seems *very* simple for my needs, but maybe there are reasons why one would want to use TBB instead. At any rate, they both seem to be targeted toward shared memory systems and not massively parallel systems which means that (unless I'm missing something) these technologies are direct competitors. Of course the difference is one is accomplished through C preprocessor pramgas (OpenMP) and the other is a library.

  User Rating: 1015   |  Rate This User   Send Private MessageView ProfileReport this Post to a Moderator | Link

All times are ET (US)

Post Reply
 previous story  next story 
Forum Rules:
You may post new threads
You may not post replies
You may not edit your posts
You may use HTML in your posts
Jump To:
Administrative Options: