Summary: Processors are generally available with single, dual and quad cores. We'll look at what that means, and how you might select which is right for you.
For a home user with no special programs and no gaming, am I better off with a single core processor or a dual core processor. I play no games. I simply have a few usual things (word processor, registry cleaners, anti-spy and security stuff & etc) but I need a new PC. This one is over 10 years old and only has 256 MB RAM and 10 gig HDD. It is SLOW even after cleaning the registry, defragging, optimizing and everything else. It is still slow and always runs low on virtual memory thereby forcing the paging file to be increased from the HDD. I think I need at least 1 gig RAM and 80 Gb of HDD. Would I be better off with a dual core or a single core processor?
•
Normally, I stay away from specific processor recommendations because things change so much, and so often, and I'm just not one of those people that wants to do a detailed comparison between processor A and processor B. There are plenty of other passionate people who'll happily do that all day long.
In this, however, I do have an opinion: more cores may be better, but too many may not be worth it.
•
A "core" is simply another way of saying CPU or, in a sense, computer.
The CPU or Central Processing Unit is the computer. It's the thing that executes instructions, one at a time, very quickly to make the system "do stuff". Everything else - the memory, the circuitry on the motherboard, even the hard disk and other peripherals, are there either to support the CPU in its task, or to allow the CPU to interface with devices or people.
A single core CPU can do exactly and only one thing at a time. It does them very quickly, so it can switch between different things to make it look like it's doing several things at once, but in fact at the core of the matter (pun somewhat intended), it's doing exactly one thing at a time.
A dual core machine can do two things at a time.
A quad core machine can do four things at a time.
The math is pretty easy there.
To understand if there's any benefit to single, dual or quad core for you, we have to understand how you use your computer, and if any of the things you use it for are actually "CPU intensive". Many, if not most, of the things you've mentioned like word processing, internet surfing, and even malware scanners are not CPU intensive. They're held back by the speed of other things: a word processor is only as fast as you are, surfing the internet is limited by the speed of your internet connection, and even things like malware scanners are usually limited by the speed of your hard disk. In almost all cases your CPU, even a single one, is much faster than needed for any of these.
So why have more than one core?
The most obvious reason why you would need more than one core is when you are doing things that are CPU intensive. But even then things get tricky.
File compression or audio and video encoding are good examples of processes that are very computationally intense. In other words, when compressing a file, the process to calculate the compression is typically slower than reading and writing the file being compressed. One would think it would be twice as fast on a dual core, and four times as fast on a quad. Unfortunately, most of the time it's no faster.
The reason is that software must be written to take advantage of
multiple processors, and most software is not. (Writing what's called
"multi-threaded" software can actually be quite complex - I know, I've
done it.
).
Most software is either not CPU intensive, or is written assuming there's only a single processor.
What that means is that if you run that file compression and watch your CPU usage, you'll find that exactly one of your two or four cores is completely consumed by the compression operation, while the other(s) are mostly idle.
On the other hand, some software - often video or audio processing software - is often architected to use multiple cores.
With that as a lot of background, what's my recommendation?
I will now get at least dual core machines, even for machines that are never intentionally going to be running CPU intensive software. The reason is simple: if something hangs or a program crashes in such a way that it is eating up all CPU resources, it's doing so on only one of the two cores. The other CPU core is left running available for other tasks - like handling the screen and keyboard - and the machine remains usable.
If a quad core processor were the same price as a dual core, I'd certainly say go for it. There's no real downside to having more cores, but typically a quad will be more expensive, often by a significant amount.
If, on the other hand, you plan to run CPU intensive software that you know will use multiple cores if available, or you plan to run several CPU intensive programs at the same time, then perhaps a quad core machine might make more sense. My desktop machine, in fact, has a quad core CPU specifically because of my plans to do some video editing and CPU-intensive rendering.
But for most people: dual core is plenty.
Related:
Why won't my program use more than 25% of the CPU? Multi-core processors add an additional layer of complexity to software design - the result is that multiple cores are often underutilized.
Why are one manufacturer's processors faster than another - even at the same GHz?
Does accessing my computer's hard disk over the network impact the computer's performance? Does accessing my computer's hard disk over the network impact the computer's performance?
Article C3716 - May 1, 2009
I have a follow up set of questions on this topic:
Which part of the software decides which processor to use? Does the OS need to be configured to be able to handle process scheduling for multi core processors? Can XP do this? Vista? How about Linux? Does the OS need to be upgraded too?
How does one test this? I have been using a dual core processor for quite some time but never perceived any difference the same way increasing the memory made a perceivable difference. Sometimes I find my single core desktop working faster than my dual core laptop while doing the same task.
The best way to test it, in my experience, is to fire up process explorer and watch CPU usage. On a dual-core machine if a process is consistently using 50%, then it's likely single-threaded and using only one core. Yes, single threaded software will run faster on a CPU with faster clock speed than on a dual core with slower. Where the dual core helps is that the system is usable when a process is "pegged" using all of it's core - if there's a second core available for other things, those other things are more responsive.
02-May-2009
Satisfactory and conclusive as usual,but, maybe quad core is foreseen for new incoming programs
Posted by: nelson at May 5, 2009 1:45 PMDoes XP Home support Quad Core?
07-May-2009
A dual core CPU is fine for most average PC users and applications. Quad core is probably only of use to high-end gamers (like Flight Simulator X pilots).
Posted by: Mark at May 5, 2009 6:16 PMZiggie - to meet your need, install more HD's and separate your files. Keep one for OS and one or more others for data, maybe separate disks for different file types.
Rahul - yes the OS is supposed to handle assigning tasks to CPUs, but I still have my doubts about how well windoze does at it since deep down at it's core is remembers its single standalone CPU roots (on the other hand, Nix came from multi processor background so I expect it to do better (not that I have any empiracle proof it does)). However, you can manually assign programs to specific cpu's, (I just can't find my "How to" notes right now).
Leo - you made half of my point, manufacturers still tend to make their multi core / multi cpu chip boxes with slightly slower individual cores than the highest end of the single core CPUs that are available. So while a multi processor may have many more cpu cycles collectively each cpu is slightly lower powered than an "equivalent" single core chip would be. That being said, my latest laptop is a dual core and I expect my next purchase (in a couple of years) will be (at least) a quad core 64 bit cpu.
Windows 2000, XP and Vista are built on the Windows NT codebase, which was designed for multi-processor implementations from the begining. Windows 95/98/Me are all based on the old DOS/single-core implementation.
07-May-2009
Dear Leo,very useful info. My only contribution is that as a very naughty user (installing and removing loads of programs and experimenting with this and that like a freeware junkie) I used to crash my 2.2Ghz Pentium 4, Win XP single core desktop as regularly (almost) as a bumper car at the fairground! Similar treatment to my 2Ghz dual core Win XP Dell laptop has in over a years abuse failed to crash it once. It's had one or two nervous ticks but after a little patience and prayer has always come through. Is this significant or just freak luck?
Posted by: Mike laycock at May 5, 2009 11:53 PMThanks Ron, I'd already moved in that direction, but was wondering if there was drive technology i didn't know about.
ah well. at least hard drives are cheap.
Posted by: Ziggie at May 6, 2009 6:18 AMRon - I'm not sure I agree as to the relative worths of OSes in multi-processing.
As far as I know, Windows NT has had SMP (symmetric multi-processing) support since at least 3.51, and likely since before that. We all forget multi-processing existed long before it was really cost-effective. As a result, I'd expect the entire Windows NT line -- 3.51, 4.0, 2000, XP, Vista, and the upcoming Windows 7 -- will handle multi-core CPUs just fine, at the OS end (side-note: Windows 3.51 came out in '95, according to Wikipedia, which gives us around 14 years of experience working with multiple CPU architectures, mostly in high-end systems that would've been *very* important to Microsoft to have running very well).
On the Linux side, both Linus's kernel, and the Minix it was based on, were developed initially for single-processor systems (for Linux, the 80386; for Minix, the IBM PC and PC/AT). Support for symmetric multi-processing must've come in reasonably early in Linux kernel development, but it still leaves approximately the same development period as with Windows, and in this case with much less interest to have it working well -- I doubt many Linux kernel hackers had, or worried about, multi-processor systems.
What I have a big question mark about is BSD and its variants. BSD is a much older Unix, and one that has most definitely been used in multi-processing environments. And with Mac OS X being based on the same Mach kernel as the BSDs, it /probably/ inherits good SMP support from them. With that said, I've not played much with OS X and cannot say anything as to its relative worth. A similar argument would apply to other commercial Unixes that still exist.
Coming from the theoretical to the practical, what I've noted most of all in multi-core systems is the tendency of single-threaded applications to be "bounced" around the two (or more) cores available, which actually results in somewhat diminished performance by virtue of invalidating a number of caches. Considering that each core has its own instruction cache, we can plainly see that any application being switched from one core to another will leave its next few instructions in the former core's cache (where they are useless), and those instructions will need to be fetched again into the new core's cache, flushing out whatever had been there before.
Coupling the above with the tendency for multi-core systems to be progressively lower in clock frequency than their single-core brethren, it's obvious that a single core is the ideal for a single-threaded application. *However*, single-core CPUs are becoming extremely rare nowadays, and their price tends to be about equal, if not higher, than the price of a nearly-equivalent dual-core system. Similarly, single-core has no advantage for multi-threaded applications, which exist.
Given all of the above, the choice of OS is likely unimportant (with noted exceptions). For the initial question, I'd recommend a dual-core machine for this light use, mostly due to the combined factors of approximately same cost and the high probability of more and more applications becoming multi-core aware, and thus using the available resources better.
I would similarly not recommend a quad-core machine unless the price difference from a dual-core machine is very small and/or there is an intended use for the four cores (as Leo mentioned, video- and audio-editing tasks (and a few others) tend to be infinitely parallelizable -- for instance, a video can be split into two clips and each of the clips can be processed by a core, independent of the other clip; naturally, this can be extended to four or even more such divisions of work).
Posted by: Octav at May 6, 2009 8:59 AMAs quad-core machines become cheaper, it will eventually be more cost-effective to have one than to stick to a dual-core one, and the number of multi-core aware applications likely will only grow by then, making it a better investment. I don't believe we've reached that point yet, but keep it in mind. ;)
Leo, Thanks for the answer to my XP question. Today I saw an article "How Many CPU Cores Do You Need?" on Tom's Hardware site.
http://www.tomshardware.com/reviews/multi-core-cpu,2280.html#xtor=RSS-182
This is an excellent article using various benchmark tests and compares Single, Dual, Triple and Quad cores.
Posted by: Tom at May 9, 2009 11:57 PMHi there!
After reading carefully everything said above, and mutch more clarified, however, my question is: and for gaming purposes? Dual or quad? I still have doudts on that...
23-Sep-2009
Posted by: João Campinas at September 22, 2009 12:57 PM