Helping people with computers... one answer at a time.

The way dual core processors work is quite complex. They allow the computer to do two things at a time, but that may only help for programs that are written multi-threaded.

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:

  1. Programs aren't necessarily written for a specific number of cores.

  2. Most programs aren't even aware of how many cores are present on a machine.

  3. They're either written multi-threaded or not.

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

Dual cores

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.

Article C5405 - May 30, 2012 « »

Share this article with your friends:

Share this article on Facebook Tweet this article Email a link to this article
Leo Leo A. Notenboom has been playing with computers since he was required to take a programming class in 1976. An 18 year career as a programmer at Microsoft soon followed. After "retiring" in 2001, Leo started Ask Leo! in 2003 as a place for answers to common computer and technical questions. More about Leo.

Not what you needed?

1 Comment
Albert
July 15, 2012 2:57 AM

I'm believe that a Quad core with 4 threads is a better multitasker than a 2 core with 4 threads. Only because software developers find it easier to write to this kind of architecture. Do you agree ?

Developers rarely write to a specific architecture. Most will either write multi-threaded or not, depending on their own abilities and the needs of the software that they are developing. Quad Core running 4 threads will naturally be more effective than two cores. It has a core per thread, whereas the dual core has spread the load across the cores it has.
Leo
15-Jul-2012

Comments on this entry are closed.

If you have a question, start by using the search box up at the top of the page - there's a very good chance that your question has already been answered on Ask Leo!.

If you don't find your answer, head out to http://askleo.com/ask to ask your question.