« TBD: The Perfect Architecture Migration Guide 5 months in multi-core – what has changed? »

Thoughts on the endstate of multicore software development

September
19th
member
admin

I recently read two interesting articles on multi-core programming from different angles. One is from a noted compiler writer who is a creator of development tools that enable multicore/multiprocessor programming:

http://www.hpcwire.com/features/Compilers_and_More_Parallel_Programming_Made_Easy.html

The second article is an interview with a noted game programmer, who would be a consumer of such development tools:

http://arstechnica.com/articles/paedia/gpu-sweeney-interview.ars/

Both of these are good reads. Both of the articles make arguments about the need for easier parallel programming. Dr. Wolfe posits about what is realistic from the point of view of a creator of tools. Mr. Sweeney discusses what customers need and essentially argues that the development tools need to do the lion’s share of the work.

I believe that for multicore processors to significantly impact the industry (impact means most customers derive benefit, which means most developers take advantage of parallelism in one form or another), the end state for parallel programming is that it will blend into the background and in a sense be taken for granted by developers.

In addition, I think it follows that any mass-market product that has a parallelism-centric purpose is a sign that we are not at that end state yet.

Take for example, Intel Threading Building Blocks and the recently announced Inte® Parallel Studio. Intel TBB is a great library and I think Intel Parallel Studio will help customers tremendously. But the question is … does the average developer care enough about multicore processors to take on these parallelism-centric tools?

I suspect it may be a bit too much for the average developer, but I do think tools like these will broaden the developer base taking advantage of parallelism and perhaps that is the best that can be asked.

Putting it all together – perhaps the end state is one where:

  • the average developer (apprentice) doesn’t have to care about parallel programming to take advantage of multicore – they derive benefit from domain specific parallel libraries
  • the experienced developer (journeyperson) increases the performance of their application by using 1st class language support for concurrency and is able to take good advantage of features in parallelism-centric tools where needed.
  • The expert (architect) designs-in use of key concurrency features in their application and is able to wield these parallelism-centric tools with ease.

Thoughts?

Max

date Posted on: Friday, September 19, 2008 at 9:34 pm
Category Uncategorized.
You can follow any responses to this entry through the RSS 2.0 feed.

Both comments and pings are currently closed.



Comments are closed.


Domeika’s Dilemma is powered by WordPress
Theme is Coded&Designed by ricdes dot com