Channels ▼

James Reinders

Dr. Dobb's Bloggers

Cores Enough to Compel Parallel Programming

April 20, 2009

When will there be enough cores to make coding for concurrency worthwhile for you?Recently, someone excited told me "Wow - everyone I talked with about their new use of parallel programming on a multicore system tells me they get significant performance gains - 50% or more, and 2X was common!"
Yes, I have the same experience. If you are skeptical, you are worrying that I'm saying everyone will see this benefit now - and that is clearly not true.
There is a cause and effect thing here - parallel programming is worth the effort if you see results. Those that found it worthwhile, do the work and report the results! A 2X speed-up on a key part of a program, is often worthwhile. Also, you might find a feature is doable whereas it was not previously - and that make the effort worthwhile.
You can never say "Parallel Programming is worthwhile for everyone." However, as the core count increases - the opportunity for 2X, or new features, continues to grow.
If you get 2X on two cores vs. 1X on one core, that is "perfect scaling." If you get 2X on 4 cores, that's not too bad. Someone in high performance computing (HPC) will probably tell you that 2X on 16 cores doesn't seem very impressive. That's because efficiency is very important in HPC.
Efficiency of this type, has never been the primary concern for non-HPC programming. Programmer productivity is much more important in general.
This begs the question, "If 2X is compelling for you, do you really care how many cores it takes?"
Assuming the answer is 'no' - we get to the question, "When will there be enough cores to make coding for concurrency worthwhile for you?"

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.