Microsoft has shared bits and pieces of how it is adding new features to its development tools to better support parallel processing.
But the next release of Windows client and server also are going to incorporate changes designed to improve their parallel-processing support.
While Microsoft execs and those who’ve managed to get their hands on early builds of Windows 7 have focused largely on user-interface tweaks in Windows 7, there will be some under-the-covers changes, too. Microsoft officials have said on the record that deep-level changes between Windows Vista and Windows 7 will be kept to a minimum, in order to insure application and driver compatibility. Yet Microsoft officials acknowledge that Win32, the core of Windows, is not suited for asynchronous, concurrent computing.
Microsoft is taking the first steps toward remedying this limitation with Windows 7 and its joined-at-the-hip sibling, Windows 7 Server (the product currently known as Windows Server 2008 R2). In the longer term, as I’ve blogged previously, the game plan is to find a way to exorcise Win32 from Windows and replace it with managed code preferably a set of programming interfaces that are better tailored to handle parallel-processing tasks across many processors. (That’s where the incubation projects codenamed RedHawk, MinSafe and Midori all come in. But don’t expect to see the fruits of any of these projects appear in Windows until Windows 8, at the earliest.)
At the upcoming Microsoft Professional Developers Conference in late October, Microsoft execs are slated to discuss “the key architectural changes Microsoft is making to Windows to enable the efficient execution of parallel software,” according to a session description on the PDC Web site.
I asked Microsoft for more specifics as to what’s changing in Windows 7 with regard to parallel-processing support. A spokeswoman said “Microsoft is not commenting on this level of detail regarding Windows 7 yet.”
I got a few hints about what’s on the drawing board, however, from Craig Mundie, Microsoft’s Chief Research and Strategy Officer.
“Win32 was never designed for highly concurrent, asynchronous processing,” said Mundie during a recent interview I had with him last week at the Emerging Technology Conference in Cambridge, Mass.
“Parallelism requires adjustments at every level of the stack,” Mundie acknowledged. It involves “the repartioning of different tasks to different layers….So look for a rebalancing of roles and runtimes. We need to formalize that in the operating system. Expect thei first pieces in the next generation of Windows.”
As one example of one Windows feature that needs this kind of rebalancing, Mundie cited the user-mode scheduling model. The existing Windows scheduler has “too much overhead,” Mundie said. He noted that Microsoft has introduced a new trial model as part of its Robotics Development Kit runtime. Microsoft’s robotics toolkit includes new concurrency and coordination (CCR) and decentralized software services (DSS) runtimes that are optimized for distributed/multicore computing.