Tuesday, July 24, 2007

Threading Building Blocks

So tonight I somehow managed to pretend to be a legitimate journalist and went and mixed with the great and the good at the Intel Media Party where we got the briefed about Threading Building Blocks 2.0 library which Intel is releasing today as open source under the GNU General Public License.

Threading Building Blocks is a C++ template library which attempts to give easy access to parallel programming, and heavily pushes a task based rather than thread based approach to parallelism. It provides developers with parallel algorithms, concurrent containers, a task scheduler and a scalable memory allocator.



James Reinders and Threading Building Blocks

James Reinders was running the show, pushing his new book "Intel Threading Building Blocks" (via amazon.com) published by O'Reilly, presumably to coincide with the release of the project to the community.
...just say 'no' to explicit thread management. - James Reinders
At the same time Intel announced a coding contest that will run to the end of the month, they're looking for the best use of Threading Building Blocks in an open source project, and they're offering a shiny new multi-core laptop as bait.

It actually looks like an interesting way to go about parallelising shared memory applications, although even after talking to James for ten minutes or so in the open bar after the announcement, I'm having a hard time figuring out what the major thing that TBB does that OpenMP doesn't.

However the interesting thing from the perspective of a Perl hacker is that TBB is potentially wrap'able in Perl XS, which I'm not sure had occurred to the Intel guys. When asked about higher level languages they started talking about optimising the compilers or virtual machines, rather than user level code. Since he wrote the book I'll have to drop an email to Tim and see what he thinks to the idea.

Brad has his own taken on events as he managed to blag his way into the party as well. Which reminds me, why do vendors only give out t-shirts in XL?