1,364 Posts served
5,674 Conversations started
The second Threading Building Blocks poll suggests that developers intend to use a wide variety of approaches to address the "multicore challenge."
The poll ran from August 10 through September 13. The question was:
How will you modify your application to enhance performance on multicore processors?
166 votes were cast. The final results were:
- 35% (58 votes): Multithreading using traditional threading techniques
- 32% (53 votes): Multithreading using Threading Building Blocks
- 20% (33 votes): Apply another technique (new language, etc.)
- 13% (22 votes): We aren't planning to make any changes
While this isn't a scientific poll, it's still interesting to think about how people chose to cast their votes. First of all, this poll was conducted on the ThreadingBuildingBlocks.org site, yet fewer than a third of responses indicated that Threading Building Blocks will be applied to enhance application performance on multicore systems. What might that suggest? Possibly that many people who know about threading are curious about TBB, but they are not sure at this time if TBB meets their needs? Before you'd decide to use TBB to upgrade an existing application, you'd have to have done sufficient investigation and testing in order to assess the relative strengths of TBB and alternative approaches. At this early point in Open Source TBB's existence, I think there simply aren't enough developers who have been able to apply Threading Building Blocks with sufficient diligence to know they'd prefer to use TBB to traditional threading methods.
It's interesting that out of four response options, no option received more than 35% of the votes. To multithread an existing application using "traditional threading techniques" is certainly a good answer. The traditional methods I intended for this category were pthreads and Windows threads; but it's possible that some people consider OpenMP as being a "traditional" threading method -- it depends on the time frame you consider "traditional" to apply to. Programming with native threads is certainly a safe option in that you're working with something that's been proven. They can scale pretty well on up to 8 processors for certain kinds of applications, in my experience. Very difficult to debug, but native threads are a proven method.
The 20% of votes where developers are going to "apply another technique" to enhance performance on multicore systems may also include some OpenMP votes. It would be interesting to know which specific other techniques these voters are planning to use!
That 13% of votes were cast for "We aren't planning to make any changes" isn't a surprise to me. Or, maybe I'm surprised that the percent was that low for this response. There is a lot of software that doesn't require multithreading in its present form--for example, programs that are almost entirely user interfaces. Multicore processors haven't enabled humans to type on multiple keyboards simultaneously, so these types of programs will gain little to nothing from being multithreaded. Perhaps few developers who visit the TBB site are working on this type of application; and most are visiting the site because multithreaded development is already on their agenda, or they expect that it will be soon.
The third TBB poll is now active on the ThreadingBuildingBlocks.org home page. The poll question is:
How many processing cores will a typical new low-end (under $1000) computer have in 2012?
The response options are:
- 2 cores
- 4 cores
- 8 cores
- 16 cores
What do you think? Will we see the emergence of a new "law" defining the number of years it takes for double the number of processing cores to become available at a given price level? Remember, the cores needn't be on a single processor. It could be that 5 years from now, a typical low-end computer will have multiple multicore processors. Today, multicore is still new enough that it's difficult to predict exactly how things will play out, and over what time frame.
Anyway, please think about where you think we'll be 5 years from now, and cast your vote!
And if there's a poll you'd like to see that's related to Threading Building Blocks and parallel programming, feel free to suggest it.
Kevin Farnham
O'Reilly Media
TBB Open Source Community
By Jon Mountjoy on September 14th, 2007 at 10:07 am
I think you need to cube each option. We already have the wonderful octo-core Mac Pro - http://www.apple.com/macpro/
:-)
Jon
By The Tao of How on September 27th, 2007 at 8:41 am
While this isn'ta scientific poll, it's still interesting to think about how people chose to cast their votes. First of all, this poll was conducted on the ThreadingBuildingBlocks.org site, yet fewer than a third of responses indicated ...Reactions Mixed on How To Respond to Multicore