SAN FRANCISCO, Calif. Intel and Microsoft are taking small steps on the long road to creating a new parallel programming model for tomorrow's multicore processors. The companies discussed their progress in separate presentations at the Intel Developer Forum here.
Microsoft talked about its vision for adding new layers to its system software stack as well as point extensions it is making to its .Net environment. Intel discussed new planned extensions to the x86 instruction set and showed progress on Ct, extensions to the C++ language aimed at supporting greater parallelism.
From the advent of computing, software got a free ride as Moore's Law drove serial processors to greater performance levels. But growing problems of power leakage in microprocessors has driven a shift to putting more cores on a die, forcing a historic transition to a parallel programming model yet to be invented, said David Callahan, who leads Microsoft's Parallel Computing Initiative, announced late last year.
Microsoft and Intel are backing various academic research initiatives to help plow the way forward. At IDF, they shared some of the progress from their internal corporate teams.
As if this job was not ambitious enough, Microsoft hopes to use the parallel shift to enable advances in computer interfaces.
"This is really about a new set of natural and immersive experiences we want to deliver," said Callahan. "The parallel computing shift is just a sort of accident along the way."
The underlying software plumbing needs an overhaul before such work can begin. Callahan said tomorrow's system software will be much more layered into separate elements including new runtime environments that sit in a user space below application libraries and above hypervisors and the core operating system kernel.
The runtime environments will act as schedulers, working cooperatively with hypervisors that map virtual to physical resources and OSes that manage access to physical hardware. "This represents a re-factoring of traditional OS services," said Callahan.
The aim is to better handle the growing number of competing requests in multicore environments. Even today's PCs host a "terrifying number" of processes running in parallel, creating sequential-processing bottlenecks and losses in data locality, he said.
Microsoft will expose its runtime layer to third parties including Intel because it expects there will be a need for many kinds of interoperable software abstractions from different vendors to serve different application types. Tomorrow's software also calls for improved techniques in cooperative scheduling, better thread-level performance and enhanced message passing.
"There are a deep set of changes before you can even get to rebuilding libraries and rewriting apps," said Callahan.
"This is an ambitious shift, and this is just their first cut at it," said Michael McCool, chief scientist at RapidMind (Waterloo, Ontario) which sells parallel programming tools for the x86 and other processors.
"Initially they have done some of the obvious things supporting parallel tasks, but I haven't seen anything about efforts to abstract data," McCool added.
Tomorrow's parallel programming model will need new categories for sorting data so it can be marshaled into appropriate locations in cache at the right time, said McCool. He noted that Intel's latest high speed processor interconnect significantly reduces latency, but if the wrong data appears in cache, latency can shoot up dramatically.