The Multi-Core Fallacy

More is always better, right? Wrong! Before you start deciding that your life isn't complete without quad cores and multiple CPUs, it makes sense to understand how you use your computer. If you're like me, with currently Outlook, Word (6 different documents), PowerShell (three different windows, two different accounts), Remote Desktop (8 different remote machines open), Excel, Windows Explorer, Internet Explorer 7(4 windows, two 64-bit, two 32-bit, and more tabs than I can count), Windows Mail, and Live Writer all open and running at the same time, then more CPU cores is a very good thing. Along with as much RAM as I can cram into this thing. Because I'm always running a lot of different things and moving back and forth between them, Windows Vista 64-bit is able to do a good job of spreading the work across the available CPUs. And I see a real advantage on this dual-core Opteron 64 workstation as compared to my single core Turion 64 notebook or my somewhat older (but actually slightly higher clock speed) Athlon 64 single core workstation.

But what about my friend Owen? He uses his computer to do one thing at a time. He's just not a multi-tasking kind of guy, especially around computers. So when he bought a brand spanking new Quad-Core processor desktop computer, his expectations were that it would be 4 times faster than his old single core (but 3.6 GHz clock speed) computer. He was sadly disappointed, I'm afraid. He figured that more was better and four times more should be four times better. It wasn't, obviously, but let's look at some of the misunderstanding of multi-processors. (And whether we're talking multi-core or
multi-socket, it's really the same dynamic.)

 If I start MS Word, it uses one processor. It doesn't know anything about multiple CPUs and doesn't know how to take advantage of them. Now if it spawns a print job, the OS should generally assign that to a different CPU, IF that makes sense in the overall scheme of the load. If I start Excel, it would generally go to a different CPU. Again, assuming other CPUs aren't already loaded. But if all I'm running is a single application (game, business app, browser, whatever), then that application will NOT split across CPUs unless it was explicitly written to do so. And at this point, it's generally true that only applications designed to run in multi-processor or compute cluster environments are written to take advantage of more than one CPU.  

At the same price point, I can have a processor with a single core, two
cores or four cores. That single core processor will have a faster clock
speed than the 2 core, and the 2 core will have a faster clock speed than
the 4 core. So, for a single task, the single core processor can actually do the work faster, all other things being equal.

Now, add on to the speed different the multi-processor overheads. We have to deal with the partitioning of memory, and the overhead of managing the extra cores and trying to distribute any work loads, and the interprocess communication (IPC) that now must cross CPU boundaries (and thus use slower mechanisms than internal CPU registers), and you begin to see why multiple cores is not a panacea. Add to that the serious limitations of the Intel memory transport links and off-chip memory controller, and you can even end up with issues when you have multiple cores running multiple processes if they're using enough memory to saturate that buss. On my dual Xeon 5130 server (4 cores total)with 16 GB of fbDIMM RAM, I can't realistically use more than about 12 - 12.5 GB of RAM before that memory buss saturates and the whole machine grinds to a crawl. On my dual Xeon 5350 server (8 cores total), that's not an issue. It has 16 GB of RAM and I routinely push up to 15 GB and a bit over without an issue. (neither of the servers is CPU bound, even running nearly a dozen Virtual Machines.)

So, before you go out and buy a multi-core system, do some serious thinking about the kind of computing you do. If you're like my friend Owen, and you pretty much do one thing at a time, save yourself a bit of money and buy a single or at most dual core system, but one that has an inherently faster clock speed and/or more efficient CPU. And spend the difference where it will do you some real good - on a faster hard disk and I/O subsystem.

Charlie.

Published Sun, Nov 11 2007 10:49 by Charlie Russel

Comments

Sunday, November 11, 2007 11:37 PM by opencolumns Blog Archive » The Multi-Core Fallacy

# opencolumns Blog Archive » The Multi-Core Fallacy

Pingback from  opencolumns  Blog Archive   » The Multi-Core Fallacy

Wednesday, January 02, 2008 1:07 AM by PC Pete

# re: The Multi-Core Fallacy

Charlie, there seems to be a lot of development by software houses on just one manufacturer's chipset.

By way of example, I use Adobe Audition almost exclusively for sound processing and repairs. The old version (released in 2003) works really well with multiple cores on my dual/dualcore Opteron system.

Later versions, which claim "multiple core optimised!", were written exclusively for Xeon CPUs, and AMD CPU users see little or no improvement in speed (quite the opposite, in fact).

Is there such a huge difference between AMD MP and Xeon MP? Are there no "common points" between the two manufacturers? And are there any suggestions for improving performance, given that the task at hand is eminently suited to multiple CPUs (fourier analysis, simple data array transformations, and so on)?

Wednesday, January 02, 2008 9:26 AM by Charlie Russel

# re: The Multi-Core Fallacy

There are many commonalities between the two CPUs, but their approach to multi-core is not one of them. That being said, I'm surprised that any company would optimize for Xeon to the exclusion of Opteron. Intel certainly has a lingering advantage right now, especially since the quad-core Opterons shipped with a significant bug that had to have a micro-code change that slowed them down. But I wouldn't bet against AMD in this space for long.

Charlie.