Parallelism turned the other way around - From Hardware to Software
Stefan Möhl (Mitrionics AB)
The performance increase of desktop computers has markedly slowed down
compared to before year 2000. The value of added cores does not match
the value that doubled clock speed used to give. Though Moore's law
continues unabated, software is no longer able to leverage the added
potential. This lack of performance increase might even be the primary
cause of the decline in PC sales: Without a performance increase, there
is little reason to replace your old PC with a new one.
It seems that there are few things more important in modern language
design than solving the problem of parallel programming, possibly even
at the cost of programmability. If recapturing the free lunch of
continuous performance increases can be achieved, it may well be worth
taking a few steps back in programmability.
Chip design is inherently fully parallel. In contrast to software, where
each instruction uses the hardware in turn, a chip design has logic
physically laid out for every operation that will be performed by the
chip. This means that every operation on a chip runs simultaneously.
Would it be possible to leverage the techniques for managing the huge
parallelism of hardware design for software development?