These days, just developing a chip with a multi-core architecture doesn't necessarily equate to higher performance, since many mainstream applications are not multithreaded. As a result, big chip manufacturers like Intel and AMD are continually developing programming kits, compilers and various tools to equip software developers with the capability to tap mult-core processor resources for their roadmap product efforts. However the task at hand, though seemingly straight-forward isn't as easy, even for the likes of Microsoft. Though target applications that could benefit, like rich-media, image and speech recognition, 3D rendering and finance, are obvious, what's not so obvious is how to most efficiently code applications beyond simple parallelism or better yet, how to architect future devices more efficient at executing multithreaded software and other challenges like out-of-order execution for example.
Multi-Core Architecture, source - Intel Corp.
Today, Intel and Microsoft have disclosed that they have awarded some of the bright minds at UC Berkely a $10 million contract over 5 years to look at the problem in greater detail and come up with solutions. Reportedly, Intel and Microsoft took proposals from over two dozen research institutions including Stanford. Berkely came up the victor on this round, though rumor has it that another university will be chosen as well.
Beyond what we consider to be the "low-lying fruit" of identifying more applications that can take advantage of multithreading and multi-core architectures, we'd expect that the universities will be tasked with looking at more advanced code development techniques and architectural approaches in microcode that will foster a more symbiotic relationship between the way future architectures in both hardware and software are developed and interact. Let's face it, Intel first introduced Hyperthreading technology way back in 2002, which brought parallelism to a single core chip and today we have true quad-core processors from both AMD and Intel at our disposal. However, even today, 6 years later, most software applications on the market don't take advantage of these multi-core chips fully and too many compute cycles are wasted. What's wrong with this picture? Obviously the task at hand isn't as easy as it would seem. Let's hope the kids at UC Berkely are alright and put those funds to good use.