Douglas Eadline wrote another great article on the current and future state of parallel programming paradigms [say that three times fast!]. Again, I agree with his overall prognosis. Parallel programming is generally not for the masses. It can be increasingly difficult based on the target algorithms and the potential implementation details. There really is no one silver bullet solution.
I like to think of these articles as “buckets of cold water thrown on the masses” who have been whipped up by various media types. Every time I hear the words “parallel programming”, “solution”, “simple”, and “breakthrough” used in a sentence, I usually know it is some kind of sales pitch. [Douglas Eadline]
He’s right. There are lots of options out there today. Not necessarily all of them would work well for any given situation. I stress to all of our readers, HPC is “application specific.” The current state of our industry allows one the choice to pick between any number of parallel programming paradigms, platforms, interconnects, operating systems and tool sets. Do your homework. It will pay off in the end.
Doug spends the latter portion of his article discussing functional programming paradigms, specifically, Grand Central Dispatch from Apple.
I believe part of the rethinking we need to do is about problem expression and execution. For instance, I have been waving the Functional Programming Flag for a while. In addition, I believe dynamic execution can solve a lot of problems. That is, the program will need to decide how to do things at run-time and not compile-time. The basic idea is to use a functional approach to naturally express parallel parts of a program and create a queue of parallel work. When the program runs, the queue is executed depending on the type of resources available. If there is one core, then the queue is resolved one task at a time, if there are many cores, the queue is solved in parallel. [Douglas Eadline]
If you’re at all involved with evaluating various programming paradigms, I suggest you read Doug’s article. You can find it at Linux Mag here.