What parallel programming model do you recommend today to take advantage of the manycore processors
- by Doctor J
If you were writing a new application from scratch today, and wanted it to scale to all the cores you could throw at it tomorrow, what parallel programming model/system/language/library would you choose? Why?
I am particularly interested in answers along these axes:
Programmer productivity / ease of use (can mortals successfully use it?)
Target application domain (what problems is it (not) good at?)
Concurrency style (does it support tasks, pipelines, data parallelism, messages...?)
Maintainability / future-proofing (will anybody still be using it in 20 years?)
Performance (how does it scale on what kinds of hardware?)
I am being deliberately vauge on the nature of the application in anticipation of getting good general answers useful for a variety of applications.