Is it possible for a dual core processor to run a program that specifies a
faster single core? I’ve read your article on how some programs are designed to
work with single core processors and some with more. I’m just not sure which is
the case here. In particular, I’m wondering whether or not I’ll be able to run
a game which is asking for a 2.6 GHz processor with no core specifications (so
presumably single) on a laptop with a 2.3 GHz dual core. That’s not a great
difference. I’m also wondering how much a dual core might be able to compensate
for even greater differences, if it can at all. I’m not well versed in the
working of computer hardware.
In this excerpt from
Answercast #22, I walk through the process that multi-threaded programs use
to take advantage of dual cores and one way to test if it’s working.
Number of cores
There’s a fundamental misconception here that I want to try and clear up. It’s a little complex, but I’ll see if I can do it:
Programs aren’t necessarily written for a specific number of cores.
Most programs aren’t even aware of how many cores are present on a machine.
They’re either written multi-threaded or not.
If they are written multi-threaded then, when they are on a processor that has multiple cores, they may be able to take advantage of more than one core.
Windows, even on single processors, mimics the presence of multiple cores. It fakes out the software; it makes it look like there are more cores on the machine than there really are.
That’s what allows multi-threaded programs to run in Windows even on a single core processor.
When you’ve got dual cores then, of course, two things can happen at once. If the software is written to take advantage of multiple threads, then the software can, of course, do that.
What if it is written for multiple cores?
Now, the question is if you have a program that is written to use multiple cores and it specifies you need a 2.6GHz processor, will a multiple core 2.3 GHz dual core processor work?
Maybe. I honestly don’t know.
What if it is written for a single core?
If the program is not written to run multiple threads and it specifies a 2.6 GHz processor, will a 2.3 GHz dual core help?
Probably not. A single-threaded program is only going to use one core and that one core will be running at a speed that is lower than the 2.6 GHz than it seems to be requiring.
Which is it?
The problem is we don’t know how this software is written.
They don’t specify the number of cores because literally programs honestly don’t care.
The difference is: has the program been written in a multi-threaded fashion? It’s a fundamental architecture decision when software gets written. Unless we know that (and there really is no way to know that), there’s no way to know whether or not a dual core processor will help.
There is no general rule.
You can’t necessarily say that software that runs well on a single processor with 2.6 GHz will run okay on a multiple processor with fewer GHz. There’s just no general rule of thumb. It’s much more complex than that.
So, in short, the only real answer I can give you is (if you want to, I don’t know if there’s expense involved), but give it a try. See what happens. If it works for you – great! Then, you can probably assume that the process is written using dual cores.
In fact, run Process Explorer and monitor the CPU usage. If, when the program is running full tilt, you’re only using 50% of the CPU then you know that the software is written to use only one core; because one core on a dual core processor represents 50% of the available CPU usage.
So that’s one way to find out how that program might be written. But, of course, that’s after the fact. That’s after you’ve installed it and are giving it a try on your 2.3 GHz dual core machine.
Next from Answercast 22- How do I login to my old Hotmail account after I create a new one?