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 ReindersAt 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?