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 vague on the nature of the application in anticipation of getting good general answers useful for a variety of applications.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…