Sunday, December 2, 2007

Concurrency is the Next Revolution

According to the article by Herb Sutter in 2005, we are not going to experience performance boost by running application on computers with latest CPU chips. Traditionally, CPU designers have achieved performance gains in three main areas,
  1. clock speed
  2. execution optimization
  3. cache
However, due to physical limits, the near-term future CPU performance growth drivers are:
  1. hyperthreading
  2. multicore
  3. cache
As object-oriented programming was dominant in the mainstream in the 90's, concurrency programming is going to be the next. So what does the sea change mean to software developers? Here are the consequences.
  1. Applications will inreasingly need to be concurrent if they want to fully exploit CPU throughput gains.
  2. Applications are likely to become increasingly CPU-bound, moving away from I/O-bound.
  3. Efficiency and performance optimization will get more, not less, important.
  4. Programming languages and systems will increasingly be forced to deal well with concurrency.
This week, Microsoft responded to Herb Sutter's call for a higher-level programming model for concurrency that languages offer: Microsoft Parallel Extensions to .Net Framework 3.5.

No comments: