IEEE Spectrum has an article by David Patterson titled "The Trouble With Multicore".
I particularly like this paragraph:
One of the biggest factors, though, is the degree of motivation. In the past, programmers could just wait for transistors to get smaller and faster, allowing microprocessors to become more powerful. So programs would run faster without any new programming effort, which was a big disincentive to anyone tempted to pioneer ways to write parallel code. The La-Z-Boy era of program performance is now officially over, so programmers who care about performance must get up off their recliners and start making their programs parallel.
He finishes up the article by predicting three possible outcomes: multicore performance improvements stall out, the industry moves to new architectures like GPUs and the third, most optimistic, option, magic parallelizing compilers and software finally arrive.
The second option is almost where we're at right now. There is plenty of experimentation and some notable wins. There is also plenty of core infrastructure software out there that can benefit from being ported to multicore or hybrid hardware. If a "La-Z-Boy era" system can get a 10x or more improvement in performance and power we'll see some motivated development.
Source: The Trouble With Multicore