Channels ▼

James Reinders

Dr. Dobb's Bloggers

Parallel Programming: easy is relative, not absolute

September 16, 2008

Recently, Michael Wolfe wrote a piece for HPCWire where he points out that if programming is not easy - maybe we need to avoid saying anything will make parallel programming easy.

His article makes you think, and that puts it on my recommend reading list: Compilers and More: Parallel Programming Made Easy?

Michael rails on the term "easy" - and seems to argue that "easy" has no place in our dialog.

I once took a class on compiler dependence analysis from Michael, based on his excellent PhD work, published as "Optimizing Supercompilers for Supercomputers" in 1982.  I need to go read over my class notes... but I'm pretty sure Michael told me he had some easy methods for loop dependence analysis, loop interchange, and distance computations... the phrase "you can easily see" still rings in my ears... so that easy term might be relative. 

I believe what should be "hard" about programming is the algorithms and approaches for parallelism ("Think Parallel") not the method to write down the program.

Having an easy method to write express or debug a parallel program, can be quite different than making programming itself easy.

I'd just like tools to make my job as easy as they can.  Good programming is not easy and parallel programming isn't going to be easier than regular programming.

Michael does conclude, what at times what seems to be a down beat article, with "I have confidence in the applications programmer's ability to develop algorithms and approaches to using parallelism."

No one says that is going to be easy if we haven't made programming easy for all.

I couldn't agree more. 





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.