Here's a short article that explains some problems.
----------------------
The Trouble with Multi-Core Computers
Adding more cores to a computer makes it faster, but it also makes it tricky to program. How will computer scientists cope?
http://www.technologyreview.com/read_article.aspx?id=17682&ch=infotech&a=f"Historically, writing software for multi-core systems has been the job of experts in the supercomputing world. But with the coming age of personal supercomputers, average programmers also need to be able to write software with multiple cores in mind.
"That's a scary thing," says Krste Asanovic, professor of electrical engineering and computer science at MIT, "because most have never done that, and it's quite difficult to do." Asanovic and his colleagues are tackling one of the main challenges that programmers face when they try to write software that will run efficiently on multi-core systems: coordinating multiple tasks that run on separate cores in a way that doesn't cause the system to crash."
John