4 ms·
Good questions... We are open sourcing the entire runtime we use, and contributing to open source. We have created an open source runtime project for use by an
by jamesreinders 15y ago
Good questions... We are open sourcing the entire runtime we use, and contributing to open source. We have created an open source runtime project for use by any compiler, including gcc, and we will be using it ourselves (or we already do).
TBB is the most widely used abstraction (not OS threads like pthreads) for C++ parallelism (several developer surveys confirm this). OpenMP is used by less developers in the U.S. surveys, but OpenMP and TBB don't really compete for developers because TBB is very C++, and OpenMP is not. TBB was contributed to open source in 2007 by Intel, and is a very active project - with lots of users and ports virtually everywhere. Users include well known names like Dreamworks, Adobe, Autodesk, and EA in their key applications. It's new enough (5 years) that many people have not yet heard of it... but it has a very substantial user base.
I'm biased a bit - but I wrote the book about TBB after learning of the project and loving it, not because I was on the project.
We believe in "library first" then (when you know what you are doing) put it in the language.
TBB was the library. Cilk Plus is the language equivalent.
ArBB (Array Building Block) is the library.
It needs to bake still from what I see. It's worth a look - but it is new and rougher... despite the RapidMind experience with product. These things take time. I'd suggest it lives as a library for at least 5 years before we get too excited about trying to learn from it and change a language.
Cilk's been at this since the mid-90s. TBB was our strongest way to say "we believe in Cilk and we want the experience in product"... so we added 5 years of that to Cilk's experience, and I think we are very ready to show the results and argue we can be ready for standarizing.
- scott_s 15y agoTBB is the most widely used abstraction (not OS threads like pthreads) for C++ parallelism (several developer surveys confirm this). I come from the HPC community, where this is not the case. OpenMP or just plain ol' pthreads are dominant for shared-memory parallelism. That's partly because in the HPC community, data parallelism dominates, not task parallelism. Can you point to the study? I'd like to see who they surveyed, what they asked and just what their general methodology was. Also, from what I was able to find out about RapidMind, their product was a combination of library and compiler support - but I was never able to get a good grasp of what exactly they did. They were rather secretive. But my understanding is that it's not accurate to describe ArBB as a "library." That is what I've always found curious about making Cilk and RapidMind live together in one product; as I understand it, they both require compiler changes, and they do have some overlap in functionality. Also also, welcome to Hacker News!