Why is a new generation of hyper-parallel software urgently needed?
Since the advent of the microprocessor 30 years ago, virtually all system platforms have been built on a single CPU. This means that the vast majority of microprocessor-based software platforms take a simple view of the world: one CPU and a software stack supporting single-threaded applications. Even with the development of multi-threaded OS layers and chip-level multi-threading in recent years, the vast majority of programmers have remained with the simple serial model for application programming. And why not? Programming in a serial, single-threaded world is much simpler, and on top of that, for the last 30 years each succeeding generation of CPU produced so much sheer clock-speed horsepower gain that almost all existing software would enjoy an automatic speed-boost, simply by the introduction of new CPUs – no need to change the serially threaded code at all. But those halcyon days are coming to a close – the historical model of ever-accelerating clock speeds on CPUs has hit the prov