A huge unemployment crisis is upon us, and it’s bound to get worse. In some places, unemployment is already at 50%, even 75%, and it’s bound to spread. Will you and your loved ones be affected?
What am I talking about? Well, it is a “what” I am talking about, not a “who.” I’m referring to the unemployment rate among CPU multicores. If you’re the typical person using typical applications, and you got yourself a quadcore machine because 4 is better than 2 and it didn’t cost more than a dually, for practical purposes, half your CPU cores are unemployed. Even if you’re not so typical and some of your apps/games aren’t so typical, odds are that half your CPU cores are out of work most of the time.
This is an unemployment problem John McCain is clueless on. Not even Barack Obama has an answer for it.
So what can we do about this crisis?
Recently, Microsoft previewed Windows 7, and they talked about this problem about as much as McCain and Obama. They like to complain about the extra work, but Windows 7 will do little to improve the parallel processing abilities of the OS. That will have to await major rewrites of core code and some post-W7 OS.
However, that doesn’t mean those extra cores are doomed to long-term unemployment. We’ve said it before and we’ll say it again, parallel processing is often useless and even downright stupid simply because many computer actions just don’t lend themselves to being split up and being run in parallel. They’re either inherently sequential in nature, or they take so little computer power/time that rewriting code to include parallel processing just greatly complicates a program for little to no improvement. It’s also more than a little silly to worry about parallel processing to give extra cores something to do when the current environment consists of dozens of programs in memory being rammed into one or two CPUs while completely ignoring completely idle processors unless you manually tell the OS to run X on CPU Y. It’s like having a four or eight person office in which one or two people get handed all the work, while the rest just slack.
What we really need is an OS that has enough sense to spread the wealth around. If you’re busy playing a game and the OS feels like it has to do something, the OS should have enough brains to go find an otherwise unoccupied brain to make it happy, which will make you happy that your game isn’t stuttering. Yes, AMD’s new Overdrive gives you the option to achieve the same result, but all it does is turn off OS services rather than aim them elsewhere, automatically. If Vista can figure out what programs you use the most so it can load them faster, surely it would be too difficult to code something that would give heavy-use programs a CPU of its very own while putting other programs on other processors.
In its preview of Windows 7, MS said it was out to make the OS experience better in ways that the average user would notice, and some of their promised improvements (reducing boot times, making home networking easy) actually would do that. Creating a scheduler/allocator which can intelligently use multicores so users don’t face stalls and stutters while idle processors are free would further that objective greatly.