MIT researchers are exploring a way to make parallel programming easier in order to take full advantage of the computing potential available in multicore-based computers. Many experts believe that unless parallel programming is made easier, computing progress will stall. I discussed this point in my CMG 2006 paper (download PDF).
In single core systems, software code basically runs sequentially, with each task occurring one after another, but in multicore systems tasks get split up among the cores and when different tasks need to access the same piece of memory and fail to properly synchronize the data can become corrupted and cause the program to crash. MIT has designed StreamIt, a computer language and a compiler that basically hides parallel-programming challenges but also allows for full use of multicore processors.