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.
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.
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.