LOS ANGELES In an effort to keep pace with multicore processors, Microsoft is just a few months away from completing a plan to revamp how it handles multithreading in future server operating systems. The work entails a significant redesign of some of the operating system kernel as well as getting support from third parties that design software drivers and applications.
At the Windows Hardware Engineering Conference (WinHEC) here Wednesday (May 16), Microsoft detailed many of its plans for Windows Server 2008 set to ship later this year. But the new multithreading work is not likely to find its way into a release of Windows at least until a follow-on scheduled for 2009.
Nevertheless, chip designers say they absolutely need support for more threads in software to keep their multicore architectures busy.
"I have an SUV I drive to work every day which is really a waste of gas, but when I tow a boat to the lake in the summer I really need that performance," said Glenn Hinton, an Intel fellow speaking on a WinHEC panel. "Today we buy microprocessors for their peak performance," said Hinton who heads up Intel's Nehalem design group that working on a family of 45nm CPUs set to ship in 2009.
Windows Server 2008 will support up to 64 threads per process, the same level as the 2003 release of the operating system, said Iain McDonald, managing director of the Windows server group at Microsoft. "We are working on pushing that up in the future," he added.
But that work won't be easy. Microsoft will have to revamp how it handles threading to add support for significantly more threads. Because it needs to enlist support from other companies to make the shift, Microsoft is forming a phased approach to the transition.
The company plans to start offering its approach with a small set of applications such as databases that make most use of multithreading. Later it will reach out to other companies and applications in a stepwise approach. Although the details of the Microsoft plan are not yet final, multiple Microsoft managers said they expect to have a finished plan within a few months.
One approach Microsoft could take would be to offer the capability initially only on its high-end version of Windows Server operating system.
Microsoft now supports multiple versions of its server OSes including one just for high-performance clusters as well as a data center version for large database systems.
Next year Microsoft plans to roll out two targeted versions of its Windows Server OS specifically for small and for medium-sized business, code-named Centro and Cougar respectively. The multiple versions could set the company up for a staged introduction of advanced multithreading over the course of several years.
"With the move to 64-bit CPUs, we needed to pretty much move everyone at once. But with this move we want to take it much more gradually," said one Microsoft manager who asked not to be named.
While the next version of Windows is running no more threads than the previous version, it will handle threads more gracefully. In a keynote address at WinHEC, Mark Russinovich, a member of Microsoft kernel team, described new thread scheduling techniques and other advances planned for Windows Server 2008.
The techniques include a method of scheduling threads based on the number of cycles they have been processing rather than on a 10-15 millisecond interval of CPU clock ticks. "It is still not a completely fair method, but it is much better than what we are currently using," he said in his WinHEC talk.
The new operating system will also do a better job of letting threads tap into memory in the nearest core whenever possible, he said. In addition, Windows Server 2003 uses a new synchronization API to ease the job of creating multithreaded applications under Windows.