Windows 7 to get parallel-processing tweaks
Summary: 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.
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.
According to Wikipedia, Microsoft already made some initial modifications to the scheduler in Vista:
"Windows NT-based operating systems use a multilevel feedback queue. 32 priority levels are defined, 0 through to 31, with priorities 0 through 15 being "normal" priorities and priorities 16 through 31 being soft realtime priorities, requiring privileges to assign....The scheduler was modified in Windows Vista to use the cycle counter register of modern processors to keep track of exactly how many CPU cycles a thread has executed, rather than just using an interval-timer interrupt routine."
While Windows today can handle machines with a few cores, it's not designed to exploit machines with 8, 16 or 32+ cores. I'm doubtful Microsoft will make too many tweaks to the lower-level operating system layers with Windows 7 and Windows Server 2008 R2 in order to keep user disruption to a minimum. But the early seeds designed to make Windows a better parallel/asynchronous-processing platform are being sown, starting in 2009.
Any guesses on what Microsoft might do in the Windows 7/Windows Server 2008 R2 timeframe to improve Windows' parallel-processing abilities?
Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.
Talkback
Windows 7
Is WinFS still alive or do we have to consider it as a dead duck?
Thanks
Rod
winFS was officially killed off some time ago.
But i recall reading the blog from the team when it was official, and they said the technologies that came out of the project were being incorporated into SQL and others.
But should we still be beholden to x86?
Honestly! x86 basically is YEARS old. We need to move on. x86 has served us well, but I believe is now holding us back. I think specific multi cores with a/or many reduced instruction sets CPU's incorporated with graphic, physics, et al will rule.
We must leave these old fashioned, legacy ridden (for no good reason)CPU's in history's waste basket.
It's mostly the applications anyways
not that simple...
make use of concurrent processing at the API level where
possible. The second is to provide tools to developers that
makes it easier to manage. Managing multiple threads can
be difficult if left to the application developer to
implement.
Apple has already started on this path with things like the
NSOperation API, etc. I'm curious to see what they do with
Snow Leopard with regards to things like Grand Central,
etc.
Either way, Apple has already made it clear that it is
retooling for better SMP support. Microsoft has little
choice but to follow the same path, at least to some
degree.
Microsoft started years ago "down that path"
In fact, MSR owns numerous patents that Apple will have to buy licensing rights from Microsoft to be able to use them in Snowleopard.
M$ tries the 'me too' aproach
Linux and other OSes have these features for many years.
But it's already too late!
M$ will be in the bail out line before it realeases the 'next OS'.
Have it for many years yet still get beaten from left to right
they have been using..
You and LG
Apple is now adding it to Leopard
Actually...
Linux and OSx try 'me too' approach.
multi-threaded application processing. MS with
Windows 2.0 actually had it first on the desktop. So
who is using the 'me too' approach? Please refrain
from calling yourself a 'geek' if you don't even know
the background of the topic you are commenting on.
Linux has been on multi-CPU supercomputers for years.
Windows has SMP before LINUX existed
Fast clustering though. linux has had the lead until now. It is linux clusters that have put linux into the supercomputing map.
I do not have your experience with Vista it seems to use both core equally. And keep in mind that it is the same kernel as Windows Server 2008, where a special version was 23rd on the top500.org list.
RE: Windows 7 to get parallel-processing tweaks
However these freezes could just as well be in core code. I am sure they are all race conditions with insufficient locks in the right places.
Very doubtful...
Not quite
Win32 abstracts the kernel and provides a (reasonably) consistent platform upon which all Windows apps currently run. Applications that run on Win32 are also capable of being engineered to be highly asynchronous and extremely flexible.
Craig's point was that the kernels of most OS today (Windows, Linux, BSD, you name it) are not engineered to run on (potentially) > 32 logical processors. THIS has to change.
Singularity(http://www.codeplex.com/singularity), born in Craig's org at Microsoft, is a great example of how one might take a completely different view of building an OS from scratch should one decide to approach the design of an OS with completely different ideals and assumptions.
However, most developers don't have the skills to design, engineer, test and deliver highly asynch code using today's methodologies and tools. THIS is where the IT industry as a whole should be spending their time - working out how we build applications that appropriately take advantage of the explosion in computing power that the rapid growth in the number of processing cores will give us. THIS is the new gold-rush.
Microsoft 2.0 after the Bill Gates Era, established Network transparency.
RE: Windows 7 to get parallel-processing tweaks