On The Parallel Future Of Programming
I wrote about it before, but it deserves to be repeated a couple of times:
- Processors are not getting faster at processing single threaded programs anymore. In the past you could be sure that the next CPU generation will execute any program faster - this is not true anymore.
- CPU development centers around building more and more processing cores - hence all computing intensive applications that want to be fast need to be multithreaded.
- Current programming languages and tools are mostly not well suited for concurrent programs. In the next years we will see a lot of development to address this shortcoming.
At FZI we just bought our first QuadCore machines - but obviously 4 is not going to be the limit - Intel already demoed a 80 core chip.
Google Video also has TechTalks about a proposal to add better control abstractions to Java (could be a simple step improve concurrent programming with Java) and about MapReduce - a control abstraction Google uses to more easily take advantage of multiple processors.
There's also an enjoyable video about how a modern computer game takes advantage of multiple cores (about Alan Wake, the new game from the makers of Max Payne).