Sign in with
Sign up | Sign in

Full Multi-core Power May Require Windows Rework

By - Source: Tom's Hardware US | B 59 comments

How about we just build you a core for every program that you wish to run?

AMD and Intel are quickly ramping up the number of cores inside our consumer level CPUs, but do we have the software chops to handle all that power?

With modern CPUs now having more cores in one chip than some of us have computers in our homes, the question of how to handle all that power is a concern for a certain software kernel architect at working Microsoft.

We now have affordable PCs with up to four cores and some even able to process twice as many threads. "Why should you ever, with all this parallel hardware, ever be waiting for your computer?" posed Dave Probert, a part of the Windows core operating systems division at Microsoft.

The problem, Probert believes, is that software still isn't being written to best take advantage of all the hardware that'd we've been running in our systems for years now.

Although modern operating systems do true multitasking and scale with the addition of more cores, Probert thinks that to take full advantage of the new wonderfully powerful hardware we have, it will require a reworking and rethinking of Windows.

Of course, with the rapidly growing number of cores, especially in light of Intel's experimental 48-core CPU, an alternative method would be to devote at least one discrete core to each application.

"With many-core, CPUs [could] become CPUs again," he said. "If we get enough of them, maybe we can start to hand them out."

In such a case, the OS would no longer resemble the kernel mode of today's systems, but it would be more like a hypervisor, providing a layer between the virtual machine and hardware.

Read more from the IDG News Service.

Display 59 Comments.
This thread is closed for comments
Top Comments
  • 24 Hide
    powerofpi , April 9, 2010 9:17 PM
    Forget the Windows Kernel; I would like to see the Linux kernel get more and more parallel! I feel sorry for kernel developers as they begin to parallelize their code... their life is going to get increasingly complex.
  • 20 Hide
    cryogenic , April 9, 2010 9:56 PM
    http://www.barrelfish.org/

    Microsoft is already working on it, and it's a multikernel OS, basically lots of small kernels that run collaboratively on different hardware nodes (like NUMA nodes) instead of the classical approach of one kernel running on multiple NUMA nodes at once.
  • 16 Hide
    Shadow703793 , April 9, 2010 10:06 PM
    Quote:
    "Why should you ever, with all this parallel hardware, ever be waiting for your computer?"

    Ummm.... because some things CAN'T be done in a parallel way!
Other Comments
  • 24 Hide
    powerofpi , April 9, 2010 9:17 PM
    Forget the Windows Kernel; I would like to see the Linux kernel get more and more parallel! I feel sorry for kernel developers as they begin to parallelize their code... their life is going to get increasingly complex.
  • 5 Hide
    darkknight22 , April 9, 2010 9:48 PM
    I can only imagine the possibilities if programs begin to utilize parallel processing...
  • 20 Hide
    cryogenic , April 9, 2010 9:56 PM
    http://www.barrelfish.org/

    Microsoft is already working on it, and it's a multikernel OS, basically lots of small kernels that run collaboratively on different hardware nodes (like NUMA nodes) instead of the classical approach of one kernel running on multiple NUMA nodes at once.
  • 3 Hide
    lcdvt , April 9, 2010 10:01 PM
    Are there realy eight or twelve tasks in the home OS that all need attention at the same time at 3 GHz? I don't think so! Application and game developers will need to find ways to use the CPU's full potential, not kernel developers.
  • 4 Hide
    werfu , April 9, 2010 10:02 PM
    The problem is that most modern language dont cope well with parallel paradigms. You need the OS support for it, like threads. We need language built parallel iterators and syncing. In short: new program flow structure that support parallelism.
  • 16 Hide
    Shadow703793 , April 9, 2010 10:06 PM
    Quote:
    "Why should you ever, with all this parallel hardware, ever be waiting for your computer?"

    Ummm.... because some things CAN'T be done in a parallel way!
  • 12 Hide
    Anonymous , April 9, 2010 10:12 PM
    Anybody who ever has attempted multithreaded code in Windows knows that stability goes out the window the minute you start adding more threads that actually require synchronization. It's pretty terrible TBH. Not to mention, the performance gains aren't always what you'd hope for either.
  • 2 Hide
    lcdvt , April 9, 2010 10:22 PM
    multithreaded_doT_net_devAnybody who ever has attempted multithreaded code in Windows knows that stability goes out the window the minute you start adding more threads that actually require synchronization. It's pretty terrible TBH. Not to mention, the performance gains aren't always what you'd hope for either.


    My advice, is misuse the message pump to stabilize your application. Create hidden windows and send windows messages between threads. It isn't pretty, but it always works.
  • 3 Hide
    Anonymous , April 9, 2010 10:25 PM
    where is those long promised graphene super speedy cpu's we are all waiting for not these crappy multitreads @1.2 Ghz? He-he gm:) 
  • 5 Hide
    Anonymous , April 9, 2010 10:26 PM
    We will continue to wait for those advert programs to load holding up internet sites no matter how many cores we have
  • 2 Hide
    greenprince , April 9, 2010 10:33 PM
    that's right. If you using office doc program. you may not gain much benefit for that. But if you a 3d artist. then you can use the HUGH benefit for more core as they can make. Now i am using i7 which is 8 threat. when i render my model. i got 8 node to render a the same time. and i only in one computer. eventually it is faster than i running 4 core 2 duo desktop to render in network farm. the time they send message to each desktop then back to the main desktop. it took a while.
    By the way. I understand it's hard for windows system to make better from the improvement of original windows every revolution. Maybe it's more easy to start from sketch to write a new operation system...Maybe call "Doors 10" :D 
  • -1 Hide
    lcdvt , April 9, 2010 10:43 PM
    Shouldn't Kernel developers be busy, with using no CPU ticks what so ever!
  • 3 Hide
    nforce4max , April 9, 2010 10:46 PM
    Mainframes struggle enough with this but have the benefit of decades of development in this area unlike little old windows. We could have had this long ago had dual socket platforms had seen more wide spread use in the office and home but here we are. Shame even the BBC had dual cpu micros back when people were still using 8080s and Z80s before the Amiga 500 came out. The best way they could do this is look to the supercomputing sector and license code from other developers.
  • 4 Hide
    Shadow703793 , April 9, 2010 11:08 PM
    nforce4maxThe best way they could do this is look to the supercomputing sector and license code from other developers.

    Yes, however most of that code(s) will be needed to be re-written from Linux to Windows.
    According to top500, pretty much all supercomputers (and the same case in HPC area) use Linux: http://www.top500.org/stats/list/34/os
  • 3 Hide
    Shadow703793 , April 9, 2010 11:11 PM
    lcdvtShouldn't Kernel developers be busy, with using no CPU ticks what so ever!

    You mean CUDA/Stream? If so, realize that most of the normal x86 ops used by the CPU will not run very well on GPU. What GPUs really rock at is crunching raw numbers.
  • 0 Hide
    kdashjl , April 9, 2010 11:13 PM
    Cryogenichttp://www.barrelfish.org/ Microsoft is already working on it, and it's a multikernel OS, basically lots of small kernels that run collaboratively on different hardware nodes (like NUMA nodes) instead of the classical approach of one kernel running on multiple NUMA nodes at once.

    interesting i wish they succed
  • -2 Hide
    mados123 , April 9, 2010 11:13 PM
    Cryogenichttp://www.barrelfish.org/ Microsoft is already working on it, and it's a multikernel OS, basically lots of small kernels that run collaboratively on different hardware nodes (like NUMA nodes) instead of the classical approach of one kernel running on multiple NUMA nodes at once.

    Why is it that OS design isn't focusing more so on utilizing GPU parallel processing (as seen w/ NVIDIA's CUDA) since there already are 16-800 cores available w/NVIDIA and ATI's products)?
  • 0 Hide
    LORD_ORION , April 9, 2010 11:27 PM
    This gets solved in Visual Studio 2012. Yes, the hardware came first and the software must be made to take advantage of it. Nothing to see here, move along.
  • 4 Hide
    bdcrlsn , April 9, 2010 11:29 PM
    Quote:
    Why is it that OS design isn't focusing more so on utilizing GPU parallel processing (as seen w/ NVIDIA's CUDA) since there already are 16-800 cores available w/NVIDIA and ATI's products)?


    Because 90% of people who use PC's don't have discreet GPU's in their machines.
  • -3 Hide
    Regulas , April 9, 2010 11:39 PM
    "but do we have the software chops to handle all that power?" Yeah, it's called Linux.
Display more comments