# data[].attributes.attachment_link.readable_text
I am running a VERY LONG Excel'03 Spreadsheet (can be configured to loop calculating alternatives for hours using an embedded Basic Program/Macro). I am running this on a Quad Core Intel Q6600 with 4 GB.

When I check in Task Manager, the System Idle Process will not drop LOWER than 75% and the Excel Process will max out at 25%. I've tried upping the priority of the process and have checked the "affinity" to ensure it's using all 4 processor cores. The Performance tab does show activity / load on all 4 processor windows.

What's up? Why can't I utilize more than 25% of my system when I want to use it for a high priority and very lengthy task?

It's one of the most frustrating things to experience. Here you go and spend extra money to get that super fast quad- (or more) core processor, throw a huge task at it expecting it to go two or four times faster...

And it just pokes along.

The good news, if you want to call it that, is that there's nothing wrong. The bad news is that ... there's nothing to be fixed. This is completely expected, and depends entirely on the software you're running.

Definition: core

A "core" is, in essence, a single CPU. Thus, a "quad-core" machine has the equivalent of four separate CPUs on a single chip. Each CPU can execute tasks independently of the others (I'm oversimplifying, of course) without being affected by the others.

It's kind of like having four computers instead of just one. (I'll be using quad core as my example throughout this article, but the comments apply to all multi-core processor chips, though the math might change a little).

Unfortunately this also leads to some confusion in terminology, as the acronym CPU (Central Processing Unit) isn't always used consistently:

The term "CPU" is sometimes used to refer to each individual core in a processor, as I've used it above left. More often, and perhaps more correctly, it's also used to refer to the entire processor, no matter how many cores it contains. Unless you're specifically interested in some aspect of having multiple cores, the distinction isn't important.

There are at least two times that multiple-core processors can be beneficial:

When you do several different processor-intensive things at once.

When you use software that can do one processor-intensive thing and spread it across multiple processors.

What it means to be processor intensive

Note the phrase "processor intensive". Reading email, browsing the web, typing up a document - these are not processor-intensive tasks. As you do any of those things, the computer's processor is spending most of its time idle, waiting for something else.

It might be waiting for the next byte of data to come down your internet connection or the next block of data to arrive from your hard disk; or, it might be waiting for you to type the next character. The bottom line is that your computer's processor is spending most of its time just waiting, doing almost nothing.

Processor-intensive tasks, on the other hand, usually involve calculations of some sort. Excel is a good example, but there are others, like image, audio, and video compression and manipulation. Anything that does a lot of math or calculation, or manipulates a lot of data in your computers' RAM memory, could end up being processor intensive. When a such a task is in progress, it's typically using as much of the processor's capabilities as it can in order to complete its work.

Multiple cores

Now, if you're doing just one processor-intensive thing, then a multiple-core machine can be quite nice. One core can be dedicated to that task, and the other is left free to handle whatever you might be doing, like surfing the web or reading your email. Even though those activities don't use much CPU, they do use some.

In a single-core computer, you'll immediately notice when the CPU is being used completely by some other process, because the system bogs down. On a multiple-core machine, it's not uncommon to have a processor-intensive task take up one core and it not impact your other usage at all.

The true benefit of a multiple-core machine becomes apparent when you use software that knows how to use multiple processors. In fact, that's why I'm now on a 12-core machine; the video processing software I have is multi-core aware, and will make use of all CPUs when encoding video. The result is that it does it much faster than it would if I were on a single-core machine.

And there's the issue: software must be multi-processor aware (typically "multi-threaded", in computer-ese) in order to make use of more than one CPU or core at a time.

I'm guessing that your version of Excel is not.

Multi-core software

Now, part of me is surprised; if any consumer or small-business application could benefit from multiple processor support, it would be Excel.

On the other hand, having actually done multi-threaded programming, I also understand how incredibly difficult it is to do properly.

On top of that, there is no practical way to take a random computer program or algorithm and "automatically" split it up so that the work can be divided among multiple processors. Software must be designed to use them.

Since Excel essentially allows you to write a computer program (in the form of cell relationships and its macro programming language), it has no way to know how to split up your work in a way that will succeed when spread across multiple processors.

There are certainly efforts to figure out how to do this kind of thing, but it's still the stuff of computer science researchers.

Yes, it's that difficult.

Using only 25% of the CPU

The bottom line is that when you see a single program consistently take up 25% of the CPU on a quad-core processor, you can almost bet that it's software that only knows how to use a single processor at a time.

In fact, without even knowing how many cores may be present, seeing a computer "pegged" at 25% usage is a good indication that it's a quad-core machine, and that it's running single-core processor-intensive software.

And no, there's no magic setting that can make it do otherwise.

Did you waste money on your quad core machine? It really depends on how you use your machine, but I'd say it's unlikely.

It's absolutely fantastic to have multiple cores of some sort, simply because it can help prevent your machine from bogging down due to the actions of only one single-core program. It's also handy when you're doing multiple things at once, be it multiple browser windows or other programs on your machine. Dual core, at a minimum, and even quad, can help keep your system responsive as you, and it, juggle all those activities.

If most machines weren't already at least dual-core these days, I'd strongly advise that you never get a single-core processor again.

But I'll be the first to admit that my 12-core machine is pretty much wasted most of the time. It's only when I run multiple virtual machines, or fire up that video encoding software, that all the cores really come into play. Then, for me, it's well worth the expense.

This is an update to an article originally posted January 14, 2009

Download (right-click, Save-As) (Duration: 9:46 - 4.5MB)

Subscribe: Apple Podcasts | Android | RSS

# data[].attributes.attachment_link.title
Why won't my program use more than 25% of the CPU? - Ask Leo!

# data[].attributes.attachment_link.description
I am running a VERY LONG Excel'03 Spreadsheet (can be configured to loop calculating alternatives for hours using an embedded Basic Program/Macro). I am running this on a Quad Core Intel Q6600 with 4 GB. When I check in Task Manager, the System Idle Process will not drop LOWER than 75% and the Excel Process will max out at 25%.