Friday, November 04, 2005

The need of concurrent programming

Just read two very well written articles by Herb Sutter 1. The Free Lunch is Over 2. Software and the Concurrency Revolution (with James Larus, Microsoft research) Herb very lucidly describes why most of the existing software applications need to be redesigned significantly to make use of the speed gains offered by new processors. Till now, as the clock speeds of processors would increase, the software would get faster without any special effort. But clock speeds are reaching physical limits. In the near future, processor performance will increase because of - Hyperthreading - Multicore architecture - More cache A single threaded application will be benefited only by the third factor. To utilize the first two growth drivers, it would need to be redesigned so that independent parts can be executed concurrently. The free lunch, as he says, is over. Don’t expect your applications to be significantly faster on new processors without making conscious efforts to parallelize them. But concurrent programming is hard. And so is finding parallelizable parts of the code. He also describes how programming languages and tools need to evolve to better support concurrent programming. Nice read.

0 Comments:

Post a Comment

<< Home