High Performance by Design
Tools or Parallelism
[Posted by Jenn-Ching Luo on June 23, 2011 ]
Recently, I read the article, "Panel: Wall ahead in multicore programming". There was no surprise that the panel at the Multicore Expo raised the question.
That article addressed a need of "new tools and methods" for multicore programming. Whether new tools and methods are urgent? I personally disagree.
In multicore programming, instead of looking for "new tools and methods", it is more practical and important to consider "if the problem itself is parallelable". If the problem is sequential in nature, most likely it is in vain to try any parallel tools. On the contrary, if the problem itself is parallelable, even an ancient programming tool can make the program efficiently run on modern multicores. Recent posts, "Grandpa on Multicores", are examples. The element that makes programs efficiently run on multicores is parallelism, not programming tools and methods.
I am not the only person who believes "new programming tools and methods" are urgent for parallel programming. That article itself also addressed the viewpoint, for example,
Asked if the industry needs a new programming language, one panelist said we already have too many of them. "First need to understand what it means to be parallel," he said.
Parallelism could be more important than new tools and methods. Here does not hint that some programmers may use a need of new tools and methods as an excuse when they fail to parallelize their application.
Key to parallel computing is parallelism.