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?

Topics: Microsoft, Operating Systems, Software, Windows

About

Mary Jo has covered the tech industry for more than 25 years for a variety of publications and Web sites, and is a frequent guest on radio, TV and podcasts, speaking about all things Microsoft-related. She is the author of Microsoft 2.0: How Microsoft plans to stay relevant in the post-Gates era (John Wiley & Sons, 2008).

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

45 comments
Log in or register to join the discussion
  • Windows 7

    It seems that Microsoft is playing it safe with Windows 7 by having minimum changes.

    Is WinFS still alive or do we have to consider it as a dead duck?

    Thanks

    Rod
    Rodiguer
    • winFS was officially killed off some time ago.

      I can't recall exactly, 2005/2006 timeframe maybe. <br><br>
      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.
      xuniL_z
    • But should we still be beholden to x86?

      I think we should look to the future with a new chip architecture.

      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.
      I am Gorby
  • It's mostly the applications anyways

    Frankly, it's mostly the applications that need to take advantage of all of the cores. There's not much the OS can do if an application is single threaded. All the OS really needs to do is improve threading support and acknowledge the existence of all of the processors/cores.
    CobraA1
    • not that simple...

      There are things the OS vendor can do. The first is to
      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.
      techconc
      • Microsoft started years ago "down that path"

        Yee of little knowledge... Microsoft been working on multi thread processing for *years* but they realise (like many in the media don't) that you can't change the entire OS and application compling overnight.

        In fact, MSR owns numerous patents that Apple will have to buy licensing rights from Microsoft to be able to use them in Snowleopard.
        GTRoberts100
  • M$ tries the 'me too' aproach

    That's just a sales pitch for windoze.
    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'.
    Linux Geek
    • Have it for many years yet still get beaten from left to right

      What else does it prove other than you guys' sheer incompetence?
      LBiege
    • they have been using..

      that aproach for years.. not a new Microsoft strategy tbh.
      TedKraan
      • You and LG

        fit in nicely together as poster children for the ABM mob. you both apparently of single mind. How nice. I'm sure they feel lucky to have you.
        xuniL_z
    • Apple is now adding it to Leopard

      It isn't that MS doesn't handle concurrency at all. They've had concurrency before LINUX ever existed. It is just less efficient than it could be. Linux OSX have all suffered in this area. That is why Apple is adding it to their new OSX (BSD based)
      DevGuy_z
      • Actually...

        The NT core kernal is widely regarded amoungst the REAL kernal knowledgable people as being one of the best multi threading and concurrency on the market.
        GTRoberts100
    • Linux and OSx try 'me too' approach.

      Linux Geek, all modern OSes have had this type of
      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.
      Narg
      • Linux has been on multi-CPU supercomputers for years.

        I don't know if that means they have a leg up on parallel processing, but Kubuntu seems to load balance my cores way better than Vista. Vista keeps maxing out one core while the other is idle.
        T1Oracle
        • Windows has SMP before LINUX existed

          Windows NT 3.5 had multi processor support, this was long before linux ever even 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.
          DevGuy_z
  • RE: Windows 7 to get parallel-processing tweaks

    I agree it may be mostly the applications. I just had to kill Outlook because it was frozen - too much going on at the same time. It was reading new mail, putting up a message about one just received and I clicked on a link in an older email. I get frozen about 10-12 times a month.

    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.
    wdlists@...
    • Very doubtful...

      The issue wouldn't have been the kernel, otherwise you wouldn't have been able to kill the Outlook task... please think about what you're writing in the future!
      GTRoberts100
  • Not quite

    Craig Mundie is right ... but only to a degree. Windows Kernel is highly asynchronous. Much of it is completely non-blocking and thread-safe from the IOCTL all the way down to the hardware. This means that portions of Windows' Kernel can already scale to extraordinary levels.

    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.
    de-void-21165590650301806002836337787023
  • Microsoft 2.0 after the Bill Gates Era, established Network transparency.

    From Front Page Editor to Access and other Microsoft Tools. Parallel Software formerly "Boot Camp" will be ready aswell for "ENTERPRISE TCO".
    rtirman37@...
  • RE: Windows 7 to get parallel-processing tweaks

    Cool! The virus scanner will run on three of the processors, leaving the fourth to do some work maybe? Oh, I forgot, the fourth processor will run the visual effects when the windows open. Eight processors anyone?
    tburzio