Technology in terms you understand. Sign up for the Confident Computing newsletter for weekly solutions to make your life easier. Click here and get The Ask Leo! Guide to Staying Safe on the Internet — FREE Edition as my thank you for subscribing!

Will a dual core processor run single-threaded programs?

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.

Do this:

Subscribe to Confident Computing! More confidence & less frustration -- solutions, answers, & tips -- in your inbox every week.

I'll see you there!

1 thought on “Will a dual core processor run single-threaded programs?”

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

Leave a reply:

Before commenting please:

  • Read the article.
  • Comment on the article.
  • No personal information.
  • No spam.

Comments violating those rules will be removed. Comments that don't add value will be removed, including off-topic or content-free comments, or comments that look even a little bit like spam. All comments containing links and certain keywords will be moderated before publication.

I want comments to be valuable for everyone, including those who come later and take the time to read.