|
Windows '08 Server with Support for 256-core Coming » read source
Up to 256 logical cores will be supported by the next version of Microsoft’s Windows Server 2008. At recent events like WinHEC and Professional Developers Conference Microsoft has slowly leaked out information of Server 2008 release 2, but Microsoft’s Mark Russinovich is now revealing just exactly how the operating system will scale. The founder of Sysinternals and programming guru, in a video interview posted on the MSDN website, explains how Microsoft will remove bottlenecks, specifically the dispatcher lock, to handle dozens to hundreds of cores.
Windows Server 2008 will be based on Windows 7 code-base and will borrow heavily from Vista. Russinovich says most of the code will remain the same and this will help maintain application compatibility. Microsoft will have to change to keep up with the times as servers utilize more processors and cores and Russinovich explains that Microsoft coders are working hard to eliminate the 32-core limitation that hasn’t changed since the Windows NT days.
Threads are assigned a 32 character binary bitmask that marries the thread to a particular logical core. Microsoft defines the number of logical processor cores as the number of physical CPUs times the physical cores times the threads. A two CPU system with quad-cores and Hyperthreading for instance, would be considered a 16-core system in Microsoft terms. The bit mask determines a thread’s processor affinity or what core it can run on.
Here are some examples
00000000 00000000 00000000 00000000 = thread can run on all processors (affinity is basically off)
00000000 00000000 00000000 00000001 = thread runs only on the first processor
00000000 00000000 00000000 00000010 = thread runs only on the second processor
00000000 00000000 00000000 00000100 = thread runs only on the third processor
00000000 00000000 00000000 00000111 = thread can be distributed across the first three processors
Because there is a bit for each core this works perfectly with up to 32-cores, but this same system has to be tweaked to work with more cores. Russinovich says Windows 7/2008 Server will use processor groups where threads will be assigned to groups of cores. This means old bitmasks, and thereby existing applications, will work with the upcoming operating system.
But, if those cores spend most of the time idling, running threads on more cores doesn’t really help. Current Windows operating systems have a global dispatcher lock which essentially stop all cores to prevent objects from being accessed by more than one core but this presents a problem when scaling beyond 8 cores, While this lock isn’t such a big deal on systems that have up to 8 cores, declared Russinovich. By adding two more wait states – the pre-wait state and the “real” waiting state, Microsoft coders have tweaked threads to now lock objects locally, that is within their processor group. ...
|
|
» Posted by admin
0 Comments
Be the first one to comment on this news!
Login or register to add a comment
|
|
|
|
|