Last summer I posted a four part series on building your own PC:
My personal system is basically identical to that build, though it predates it by about six months. The only significant difference is the substitution of the Core 2 Duo E6600 CPU.
In my opinion, quad-core CPUs are still a waste of electricity unless you're putting them in a server. Four cores on the desktop is great for bragging rights and mathematical superiority (yep, 4 > 2), but those four cores provide almost no benchmarkable improvement in the type of applications most people use. Including software development tools. (Update: This paragraph was more controversial than intended. See Should All Developers Have Manycore CPUs? for a clarification.)
My original advice stands: for the vast majority of users, the fastest possible dual-core CPU remains the best choice. I overclocked my E6600 CPU from 2.4 Ghz to 3.2 Ghz, instantly increasing the value of the processor by about 800 bucks.
Beyond overclocking, the economy of building your own PC also lies in upgrading it in pieces and parts to keep it up to date. Once you've taught yourself to build a PC, swapping parts out is easy. That's an option you almost never have on laptops, and rarely on commercial desktops.
It's been almost a year and a half since I made any significant change to my PC build. That's an eternity in computer dog years. I was developing a serious itch to upgrade something -- anything -- on my PC. I did a bit of research, and I was surprised to find that the P965 chipset on my Asus P5B Deluxe motherboard supports the latest and greatest Intel CPUs. This is a pleasant surprise indeed; Intel and AMD change the pinouts and sockets of their CPUs quite regularly. A simple CPU upgrade, more often than not, forces a complete motherboard and memory upgrade. But not in this case!
So here's what I did:
This chip is an outstanding overclocker. It's almost a no-brainer. The tubes are full of documented cases of this chip reaching 4.5 GHz and sometimes higher. I was fairly content with my effortless 4 GHz overclock:
If you're wondering why CPU-Z says this is a 2520 MHz CPU instead of the 4000 MHz you'd expect, that's because the CPU is idle. All modern CPUs clock down at idle to reduce power draw. If you run something CPU intensive, you'll see the CPU speed dynamically change in CPU-Z, as illustrated by this animated GIF:
This power savings is achieved by dropping the CPU multiplier from its default of 9.5 down to 6.0. If we do a little math, it's easy to infer the relationship between FSB (front side bus), CPU multiplier, and actual CPU speed:
| 315 MHz | 6.0x | 1890 MHz |
| 333 MHz | 9.5x | 3163 MHz |
| 420 MHz | 6.0x | 2520 MHz |
| 420 MHz | 9.5x | 3990 MHz |
Overclocking the CPU is simple if you can stumble your way through a few basic BIOS screens. The default voltage on this E8500 is 1.128 volts. By juicing the CPU voltage up to 1.36 volts, and setting the front side bus (FSB) to 420 MHz, we can hit the magical 4 GHz number. All we need to do is a little unit testingburn-in torture testing, and we can confirm that it's stable.
But you might wonder -- does this overclocking stuff really justify the hassle? Is going from 3.0 GHz to 4.0 GHz really worth it in terms of actual performance and not just bragging rights?
I'm glad you asked!
I clocked my E8500 to 3.0 GHz / 315 FSB and 4.0 GHz / 420 FSB and ran a few quick SunSpider JavaScript benchmarks. You may remember this great little benchmark from The Great Browser JavaScript Showdown. Here's what I found:
And the overall benchmark result in table form:
| 3 GHz | 4 GHz | ||
| Internet Explorer 7 SP1 | 15,824 ms | 12,748 ms | 19% faster |
| Firefox 3.0 Beta 5 | 3,018 ms | 2,450 ms | 19% faster |
That's a consistent 19% performance improvement in an interpreted browser language for a 33% increase in raw CPU clock speed. Not too shabby. It's actually more than I expected. The real speed difference between an E6600 and E8500 would be (slightly) greater than the pure clock speed indicates, due to the architectural improvements and larger L2 cache in the E8500. There also might be other languages and apps that scale more linearly with that 33% CPU clock speed increase.
Compare the result of going from 3 GHz to 4 GHz with adding another two cores, which would produce exactly zero improvement in your JavaScript benchmarks. Most apps are barely multithreaded, much less capable of taking advantage of all four cores. Having four CPU cores won't help you much when they're all poking along at a leisurely 2 GHz.
So if you followed our original PC build plan, or if you're planning to build your own PC -- don't forget to factor upgrading into your system's lifespan! These builds are eminently upgradeable. Sometimes you'll get lucky and have knockout upgrade options like the E8500: a 4 GHz (almost) guaranteed drop-in CPU replacement for under 300 bucks.
* I am simplifying a little because I don't want to scare anyone. In the interests of full disclosure, here's the story. The ASUS Windows x64 BIOS flash program crashed while updating the motherboard BIOS. I can't quite describe the chill that went down my spine as I watched this happen. Any failure during a BIOS flash is irrevocable and permanent, the very definition of "bricking". To be fair, this is literally the first time I've ever bricked anything in at least 10 years of regular yearly BIOS flashing. I had to buy another motherboard and initiate a RMA on my original, newly BIOS-free motherboard. Let this be a lesson to you, kids: don't trust Windows software developers! Always update the BIOS from a boot CD or from within the BIOS itself using a USB key!
Very nice, shouldn't a torture test be longer? I wouldn't feel comfortable if my mechanic supped up my car and only test drove it around the block.
Jesus DeLaTorre on April 18, 2008 2:33 AMWould be nice to see a post about the things related to overclocking. What about heat levels? What cooling do you use? What kinds of fan does one have to invest in? How about noise levels?
It isn't as easy as just clicking a button in the BIOS, right?
Adam on April 18, 2008 2:42 AMAdam -- please read the first four links in the article. All is revealed there :)
Also, this:
Building a Quiet PC
http://www.codinghorror.com/blog/archives/000665.html
You don't deserve a fast computer after that article.
Dude on April 18, 2008 3:02 AMAsusUpdate for Win64 bricks your motherboard in a very nice fashion
Yep, I read it has to do with updating the latest BIOS over a very old BIOS. Still unforgivable, since ASUS bricked my ASUS motherboard. I've grown a little gun shy of Windows BIOS updaters as a result, so I'll be updating my BIOS the old fashioned way from this point on. At least newer BIOSes allow you to flash from the BIOS itself using a USB key which is pretty convenient.
IE was faster in at least some of the tests , but in none above? What gives?
Firefox 3 is much, much faster at JavaScript than Firefox 2.
Aren't you liable to burn through your processor a lot faster [when overclocking]?
These are just hunks of silicon and metal; perhaps if you kept it for ten years you might see some ill effect, but even then, I doubt it. And who keeps the same CPU for ten years?
Taking a potshot at Scott Hanselman's box? :/
No, not at all. I just want to dissuade people from the mindless 42 argument in favor of actually looking at some benchmarks. There are a few edge cases where 4 cores ARE faster, even at lower clock speeds. But not very many, and I'm unconvinced that most users spend much time at all encoding audio/video or rendering 3D scenes.
What about hardcore gaming (which I do) and running Apache and MySQL in the background? What about DVD encoding while streaming music and working on source code? How about virtualization for the developer that wants to test his cross-platform application?
I/O will be the largest bottleneck in the system by *far*, considering most CPUs are 99% idle all the time. People like to think that they multitask enough to replicate the behavior of a server under the load of thousands of individual users, but it's pure fantasy IMO.
That said, if you spend all day encoding media or rendering 3D scenes, then you could certainly make a strong case that quad is a better choice for you. Make sure you have two spindles, though.
Jeff should have been eating humble pie shortly after he wrote his original article, but instead he'll lean on dated, cherry-picked benchmarks in artificial situations.
Then link me some benchmarks that prove me wrong -- common apps that benefit from having 4 cores over merely 2.
[Intel's EDAT] On unoptimized threads that really need clocks, the CPU will be able to power down one core and overclock another automatically
This sounds perfect! I wonder how it "decides" cores are needed?
Jeff Atwood on April 18, 2008 3:10 AMI generally agree that Dual core is sufficient for desktop, but there are cases where quad core is useful e.g. media work (photo/video editing, video encoding etc.). Compile times also speeded up using the -j4 switch.
Charles Darke on April 18, 2008 3:12 AMThat means making multicore as much a part of your world as possible.
Dual core is multicore. If you can't scale to two cores worth a damn, throwing more in isn't going to change the situation much.
At the point when quad and dual are the same price for the same speeds, then quad (on the desktop) will make sense.
Jeff Atwood on April 18, 2008 3:16 AMI love your blog Jeff, the parts about coding and software issues at least. But when it comes to hardware advice and tutorials, I really couldn't give a fu*k. It's not exactly "coding" horror any more.
Am I the only geek on the planet who cares about software, but not hardware?
Next week on coding horror: how to build a table to put your PC on.
RWW on April 18, 2008 3:17 AMJust wondering if you have updated power consumption values for the 3GHz vs. 4GHz at idle.
Brad on April 18, 2008 3:20 AM"Am I the only geek on the planet who cares about software, but not hardware?
Next week on coding horror: how to build a table to put your PC on."
... http://www.codinghorror.com/blog/archives/000551.html
Tom on April 18, 2008 3:27 AMI think I just lost all of the remaining respect I had for you Jeff. Not that you care, I know you hear it a lot from many longterm disappointed readers -- and I thought about just quietly removing your blog from my iGoogle with a sad shake of my head, but I thought I'd at least first make mention that I thought you were a bit more reasonable than this.
Good luck with your new business venture. You're a smart person and I'm sure you'll be successful, but if you take any advice away from your blog, let it be humility.
Pete on April 18, 2008 3:29 AMThen link me some benchmarks that prove me wrong -- common apps that benefit from having 4 cores over merely 2.
Your opinion is one of "enthusiast": You park your PC in the Burger King parking lot and compare 0-benchmark speeds.
Here in the real world, most people have a small set of software pain points -- things that actually take enough time, or are prevalent enough, that they would *even notice a difference* between a Centrino 1.5Ghz system and a Core 2 2.4Ghz (not just in "single tasks", but in nuisances throughout the day, like the PC becoming sluggish because it is doing {X}). Most of us don't sit running benchmarks all day, or downgrade to low resolution so we can demonstrate a hypothetical advantage of clock rate.
There's a remarkably high correlation between those "pain points" and applications that already support highly parallelized operations. Doing a project build is highly scalable across cores. Encoding video -- especially now with high def video cameras -- is a *huge* pain point for a lot of people, and quad cores (and of course moreso octuple-cores and dual octuple-cores, and...) absolutely dominate.
But keep on running Sunspider and tweaking your settings. For actual everyday use some guy with a stock, el-cheapo Q6600 is likely running circles around you and your polemics.
Dennis Forbes on April 18, 2008 3:40 AMCoreTemp is now digitally signed, so it works beautifully under Vista and XP in all cases:
http://www.alcpu.com/CoreTemp/
I just sent the developer $5 via PayPal as a reward, I am very pleased that I can run this great little program easily under x64 now!
Note that C1E state is DISABLED by default. C1E allows the chip to reduce voltage as well as multiplier at idle, but can lead to instability when overclocking so it is typically disabled by overclockers. I am surprised that it's off by default, though.
Also, I am still using the same giant Scythe Infinity tower CPU cooler that I linked in the post.
Dual Prime95 torture load temps (E8500 @ 4.0 GHz, 1.368v)
Core #0 - 75c
Core #1 - 75c
Idle temps:
Core #0 - 49c
Core #1 - 49c
TJMax is reported as 105c which I assume is the internal throttle temperature.
Jeff Atwood on April 18, 2008 3:46 AM@RWW - yes, you probably are!
Hardware is irrevocably tied to software and vice versa. If you don't care about hardware, try running VS2008 on an Athlon 1200 with 128mb RAM.
Jamie on April 18, 2008 3:53 AMI had the exact same case ! And there are more reports on the internet.
AsusUpdate for Win64 bricks your motherboard in a very nice fashion:
Erasing bios: 100%
Flashing bios: 100%
Verifying bios: 0%
And then it's game over. (= RMA with 5-6 weeks delay before your board is returned)
Axel on April 18, 2008 3:58 AMFor actual everyday use some guy with a stock, el-cheapo Q6600 is likely running circles around you and your polemics
That's an interesting position, but I still believe that something akin to JavaScript performance in webmail is far more relevant to mainstream users than encoding high definition video.
But as I said, if you really do encode high-definition video all day, then certainly you want 4 cores. There are edge conditions where 4 cores will win by a large margin -- but I want people to understand those edge conditions and where their work fits relative to those conditions, not just blindly assume 42. When that happens, Intel's marketing team wins. :(
Jeff Atwood on April 18, 2008 4:03 AMI miss overclocking, I've had nothing but a notebook in about 2 years. One day!
I really don't wan tto look back in two years and realised I missed that was OC'ing the CoreX**** series as they seem to be giving great returns, maybe no Celeron 300A, but close enough!
Shannon on April 18, 2008 4:15 AMI bought a Q6600 for cheap on eBay and I sold my former E6420 for a very good price. So the "upgrade" cost me about 50 € (79$).
Worth it for the price, I think. Do I really need the 4 cores? I don't think so. But now I can brag I have a Quad Core! :-)
Snark on April 18, 2008 4:27 AMProfiling an individual application to measure possible *system* performance improvements when switching to a multicore system is *only* valid if you only run a single application at a time...
If you run video, web browser, email client, IDE, twitter client, instant messenger and/or skype, p2p client and peerguardian, background backup application, virtual machine, etc... simultaneously then you are likely to see a much bigger overall system performance boost..
Michael Foord on April 18, 2008 4:54 AMDISCLOSURE: I have 8 cores :-) (well, not me personally you understand - my computer, but anyway...)
Michael Foord on April 18, 2008 5:00 AMIf you run video, web browser, email client, IDE, twitter client, instant messenger and/or skype, p2p client and peerguardian, background backup application, virtual machine, etc... simultaneously
All of which will be idle 99.9% of the time and easily serviced by a single CPU much less two to sixteen of said CPUs :)
To be clear -- **I am a huge, huge fan of dual core, which I think has massive benefits**. Where some people in this thread and I differ is exactly where the point of diminishing returns kicks in. I believe it's going from two to four for the next 3-5 years.
Jeff Atwood on April 18, 2008 5:01 AMWell - I see your point, but...
Video idle 99.9% - really? With Javascript and Flash I only *wish* Firefox was idle 99.9% of the time.
I also tend to use a windows VM on the Mac and am thinking of switching to VMWare Fusion which allows me to dedicate two cores to the hosted OS.
Michael Foord on April 18, 2008 5:10 AMIn the browser showdown tests, IE was faster in at least some of the tests , but in none above? What gives?
Wondering on April 18, 2008 5:14 AMHeya Jeff,
Good article, and I agree with your stance that generally four cores has diminishing returns over two. However you've gone too far with this quote:
"...four cores provide almost no benchmarkable improvement in the type of applications most people use. Including software development tools."
Herb Sutter has beaten me to the punch and addressed this with a more eloquent post than I could:
http://herbsutter.wordpress.com/2008/04/18/quad-core-a-waste-of-electricity/
For building software, especially large systems, increasing cores gives almost linear improvement in build times.
Sure it won't help your IDE function better but faster build times are incredibly valuable as a serious software engineer.
MattyT on April 18, 2008 5:15 AMJust to clarify - Activity Monitor reports my CPU usage at between 25-65% whilst I'm doing nothing ion particular but watching a video and typing this.
Quicktime vacillates wildly between 14-30%
Parallels similarly (although currently at 60%!)
Azureus (Java P2P), Twhirl (twitter client using Adobe AIR) and Firefox also hum along at a few of percent even when doing nothing.
Michael Foord on April 18, 2008 5:17 AMThat's an interesting position, but I still believe that something akin to JavaScript performance in webmail is far more relevant to mainstream users than encoding high definition video.
Oh for sure -- I spend half my day sitting waiting for JavaScript in webmail to complete.
I find it hard to believe that you're being seriously.
Dennis Forbes on April 18, 2008 5:18 AMBrowser javascript performance sucks - improving it is *great*.
Michael Foord on April 18, 2008 5:22 AMI've just been given the job of speccing some new development machines :D Your post was perfectly timed, forgot about your ealier posts
Chris Canal on April 18, 2008 5:23 AM[Quote]four cores provide almost no benchmarkable improvement in the type of applications most people use. Including software development tools.[quote]
I'm not sure what kind of software development tools you're using, but compiling in parallel is available for some time, even on MS platform.
pingpong on April 18, 2008 5:40 AMOut of curiosity, if you plug the system into your Kill-A-Watt, what's the overall power consumption at idle and load both before and after the overclocking?
David A. Lessnau on April 18, 2008 5:46 AMI think the most important thing to keep in mind with the dual-core / quad-core argument is that often, a single application benchmark isn't going to tell you what you need. For someone like a gamer, who will only need one application performing at peak performance at a time, developers often have a lot of things chipping away at the CPU. Sure, I want VS to run snappy, but I have a SQL server instance in the background as well, and the best way to make Visual Studio happy is to get all that SQL processing off the CPU that VS needs. Likewise for subversion, outlook, any bug tracking server software I have running, IIS, or anything that runs in the background.
Ryan Brunner on April 18, 2008 5:46 AMYou can unbrick hosed bioses quite easily if you're willing to take a risk. ;)
Get an identical board, put it in your computer, boot it.
Swap the BIOS chip while the computer's running.
Flash the hosed BIOS chip.
Shut down.
Return BIOS chips where they belong, taa daa. Unbricked.
I used to fix computers for a living, and not once did I hose anything new by hotswapping BIOSes.
dnm on April 18, 2008 5:48 AMThe one thing that scares me about overclocking is you increased the voltage through this processor. So now it's probably drawing more power and running hotter. You can of course cool it etc. But how will this affect the overall lifetime of the thing? Assuming the manufacturer doesn't just rebrand the same design over and over again there must be a reason why they choose to clock it at this speed. Aren't you liable to burn through your processor a lot faster?
wpp on April 18, 2008 5:52 AMI disagree here.
Quad cores may not have any current use, but I know that a lot of software I write uses multiple cores appropriately (ie, a fractal generator doing the maths on one thread and the drawing on another).
It also allows me to run emulators without losing a CPU when that emulated OS is doing a CPU-intensive task.
I'm on a Core 2 Duo at the moment and I would prefer to be on a Core 2 Quad, simply because of the way that my environment is setup. I'll get better results with four cores than with two cores, because I don't sit around running JavaScript all day - I actually do something ;).
Matthew on April 18, 2008 5:53 AMI'm running my E8400 @ 3.7ghtz without bumping up the vcore using an TR Ultima 90 + Scythe 90mm PWM fan. With slightly better cooling (say a TRUE 120) I could push it over 4.0ghtz by pushing the vcore up. F@H pushes out a SMP in 19 hours.
Over all I love my E8400 almost as much as I love my Q6600 (running @ 3.0ghtz). This ones pushes out a F@H SMP unit in 16 hours.
Jeff, what are your temps like running the new CPU OCed?
Kevin
Kevin on April 18, 2008 6:03 AMActually, gamers now want multiple cores. Think of a game like Supreme Commander where more cores really does make a big difference.
But.. the thing I really took away from your benchmarks is how pointless throwing more hardware at a problem is.
Sure you get 19% better performance from the javascript benchmarks. But compare IE7 @ 4Ghz v FF3 @ 3Ghz... FF kicks IE's flabbly soft bottom! The real point of this is that adding hardware makes no difference compared to writing your software better.
I read about all the new .NET stuff MS has come out with, and people say 'yes, so what if it needs more memory, memory is cheap', 'performance is slightly worse but with today's computers its not an issue'. Your benchmarks prove that it is an issue, a big one if one app does something in 13 seconds that takes another 3.
So my advice would be: keep your old hardware, spend your money on cold women and hot beers (or something like that), and tell your software suppliers that sloppy, lazy, "horror" coding is not acceptable.
I'm doing nothing in particular but watching a video and typing this
How, exactly, do you "watch a video" and do anything else at the same time? I can barely listen to a podcast while doing anything productive.
Jeff Atwood on April 18, 2008 6:22 AMWe have 2xQuad core PCs at work, despite this, the biggest problems for performance are:
1. 4Gb is not enough memory by far
2. Hard disks are really slow (especially if you start swapping)
You are still building your own computers? You still overclock CPUs? And you are telling that two cores are more useful than four? You "benchmark" hardware using JavaScript?
You are really funny but you should not talk about hardware. Find yourself a different hobby.
Thomas on April 18, 2008 6:45 AM@Matthew
"Quad cores may not have any current use, but I know that a lot of software I write uses multiple cores appropriately (ie, a fractal generator doing the maths on one thread and the drawing on another)."
Ah yes, I can't tell you how often I hear my Mum say "I need faster fractals with my e-mail and teleconferencing".
Why is it that developers of high-end applications assume that when people say:
"quad-core CPUs are still a waste of electricity unless you're putting them in a server... those four cores provide almost no benchmarkable improvement in the type of applications most people use",
that he's saying "I know your job better than you do". He's not. If you are doing a complex niche job that benefits from quad, it benefits from quad.
But surely, you then KNOW that quad-core is better for you. It's when someone shells out an extra chunk of salary for hardware that they will never use, because the game manufacturer said their game uses quad cores. I mean, it's technically true, but it misses the fact that it doesn't usually BENEFIT from that.
Even Oblivion would require you to really max out the system to feel the effect, and apparently it's not that impressive an improvement.
http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=2747p=3
I'm one of these desktop users with both an x64 OS and a quad-core CPU. I have 8 GB of DDR2-8500 too. I'm not going to waddle a finger at you and scream "you're wrong", because I agree that the returns are diminishing, but they are definitely there in a desktop environment, depending on how that desktop user uses his/her system.
Windows is a multithreading environment, Jeff. Why oh why do you consistantly look at benchmarks targeted at benefits of multiple cores and their performance in a single application when it comes to a much grander scale than that? What about hardcore gaming (which I do) and running Apache and MySQL in the background? What about DVD encoding while streaming music and working on source code? How about virtualization for the developer that wants to test his cross-platform application?
I'm not saying you can't do this with a dual core. Or even a single core, but it is hands-down significantly faster to do all of these *simultaneous*, CPU-intensive tasks with 4 cores than it is with 2. Or 1.
I think I'll also disagree with how soon the market in general will turn over to spending more time writing multi-threaded applications. It's just how the industry works.
Heck, less than two years ago, you said: "Upgrading from the slowest Pentium D to the fastest Core Duo (which is ~30% faster) is a giant waste of money for a gamer. Spend your money on a better video card instead!"
(Jeff Atwood, August 2006, http://www.codinghorror.com/blog/archives/000655.html)
And now you're saying: "Four cores on the desktop [...] provide almost no benchmarkable improvement in the type of applications most people use. Including software development tools."
Which at least implies that there may be a significant improvement that *isn't* benchmarkable, but wordplay really. You had already said that there's no point in a number of other ways.
I'd like to see any self-respecting hard-core gamer out there that would rather go back to a single-core Pentium D and give up his Core 2 Duo, though Jeff. I think you'll wind up eating humble pie on Quad Core's as well.
My two cents.
(P.S.: I'm also not entirely sure we all agree on what the 'average desktop user' does with his/her PC, but it's probably a safe assumption that your average internet-browsing, computer-illiterate user will likely never put the kind of strain that even a Core 2 Duo can produce. Then again, Quad Cores aren't marketed towards this group either.)
Pete on April 18, 2008 6:48 AMWrong link:
http://techreport.com/articles.x/12210/3
@KenW: I could easily say the same about my comment - if you don't like it, don't read it... however, we're all adults here, and there's no need to get into that sort of nonsense.
This being said, I stand by my original point - this blog is called _Coding_ Horror, and a post about building hardware seems vastly off-topic to me. I don't see how making this point is nonsensical or a waste of time. If this was a hardware blog and Jeff started talking about software, I would make the same complaint.
RWW on April 18, 2008 6:57 AM@Pete
I think the biggest issue is the point of diminishing returns. In even recent games, many companies state that having multiple cores doesn't directly affect gameplay.
The key word is, directly. Indirectly, multiple cores become a boon. As you stated, sharing the workload across multiple cores allows more to be running on the system at once, as opposed to a single process tying up all of the CPU.
Personally, I won't get a Quad Core for some time. Likely because my motherboard doesn't support them, but I can expand it with better Core 2's. I'll drop in more memory and go to a 64bit OS prior to making a Quad Core a priority.
Josh on April 18, 2008 7:15 AMWhy is it still even possible to brick the motherboard with a failed BIOS flash? Why is there no built-in backup for the BIOS? Would it be that hard/expensive to manufacture a BIOS chip with a ROM containing a backup of an old version, and a jumper that automatically flashes the ROM version over the current (bad) one? Or even to just have two whole flashable copies, with a jumper or automatic detection of a bad flash to revert to the "last known good" one? The BIOS can't be all that big, surely the flashable memory isn't that expensive!
Weeble on April 18, 2008 7:15 AMSomething I forgot to add that is relevant:
All other things aside, newer CPUs will benefit *all* users in at least some of the following categories:
* bigger instruction set (SSE3, SSE4.1, etc.)
* more on-die cache
* support for higher bus speeds
* lower power consumption
Depending on the specific use of the system, some of this will matter and some of it won't. And for the bigger instruction set, that's usually something that comes up after a year or two when the latest development tools have compilers that write machine code with support for those instructions. Immediate benchmarks can't account for that (at all). Take a look at more recent benchmarks at TomsHardware:
http://www.tomshardware.com/charts/cpu-charts-2007/sisoftware-sandra-xi,391.html
The top three entries in this list are all quad core processors (the Core 2 Extreme QX6850 has four cores, despite its name). The rest of the list is filled with Athlon X2's and Intel Core 2 Duo's. Notice the difference in speed between quad core and dual core? They handily double and triple the scores of most of the dual-core processors. The insane Intel QX6850's score is nearly four times the lower-grade dual-cores.
Though as the name implies, PCMark05 is quite an old timer and not optimized for some of the latest instruction sets, you can find its scores telling roughly the same story:
http://www.tomshardware.com/charts/cpu-charts-2007/pcmark-2005-cpu,382.html
On that chart, based on the CPUs it's shown, the average quad-core scored 8,175 and the average dual-core scored 4,477 (I counted 12 on the list).
For the user that quad-cores are marketed to, I'd say they carry significant advantage.
Pete on April 18, 2008 7:21 AMHow'd you get your hands on an E8500? I tried to find an E8400 a few weeks ago, and it was nearly impossible. I had to buy the OEM version from Newegg.
Morley on April 18, 2008 7:22 AM@Weeble
It's probably a negligible cost, but because of the rarity of this kind of event and the extremely competitive computer industry, keeping costs down by shaving every penny possible is vital. I have seen boards though (Asus comes to mind) with automatic flash protection that revert to a failsafe BIOS if the primary fails. Gets you far enough to flash from a floppy or USB, but won't boot an OS.
Pete on April 18, 2008 7:23 AM"old and busted"..."new hotness"...
someone was watching Men in Black 2 last night ;)
I think the comments on quad cores are a bit questionable... not even a home computer is going to be running just two threads at once, Windows will soon see to that. The real reason for the lack of performance gain is a lack of multi-tasking on the part of the user...
Having a single piece of software optimised for multiple cores isn't the only way that multiple cores can provide a speed boost, and a reasonable amount of software is/was already threaded for convenience of the developer, or the necessity of the application.
Certainly overpriced for what they are though... and in the end I probably agree that dual core is enough... after all, I get by fine with just one at home. :)
Jheriko on April 18, 2008 7:28 AMJeff, the thing is people who have been fooled into the quad-core will shut their ears and yell "42" all day. They just can't deal with the truth that they have wasted a lot of money.
Hoffmann on April 18, 2008 7:32 AMI have generally the same philosophy about incremental upgrades. However, I *never* overclock. My home rig is basicly in two modes:
Mode 1: Gaming. In this mode the 3D video hardware, and to a lesser extent the CPU is going full tilt for *hours*. Most hardware is really hard pressed to stay reliable when pushed like this under the best of circumstances. If I crash, its guaranteed to happen at a very bad time for me and my teammates who are counting on me. Sure, 3 extra FPS might be nice, but introducing the extra heat/instability of overclocking would be irresponsible, if not insane.
Mode 2: Productivity. In this mode, I'm not doing anything more stressful than running OpenOffice while streaming something from Youtube. I already have plenty of box to spare, so overclocking isn't going to help me noticably.
Basicly, if you want your CPU or GPU to run faster, buy a faster one. If you can't afford to, wait 3 months for the price to drop and then buy it.
(Hypocracy disclosure: I do like to buy BFG hardware, which tends to come overclocked).
Jeff, are you a gamer perchance? Gamers need all those cores. Supreme Commander requires dual core (I think). Valve has said that four cores is the "sweet spot" for Source games. Some games in the near future will be using one core just for physics calculations.
Also the "you don't need four cores, two cores is just fine" argument could be levied about three years ago, only then it was "you don't need two cores, one core is just fine". If you're a power user and/or a gamer, getting four cores is a good way to future proof your system.
But yeah, eight cores would be overkill. These days anyway.
Schnapple on April 18, 2008 7:46 AMThey just can't deal with the truth that they have wasted a lot of money.
You can always rely upon fanboys.
Here's the funniest thing, though - I spent $30 less for my quad-core than Jeff would spend on his new CPU today. And I bought mine a half a year ago!
Buyer's remorse is pretty ridiculous argument to fall upon, however quaint it might be.
Honestly, this is so ridiculous that it goes to the point of ludicrous (Oh Google Mail! How often I sit waiting on you to finish executing your JavaSCript. Seriously, is this farce?)
Browser javascript performance sucks - improving it is *great*.
Of course it's great. But Jeff's marginal little clock-speed improvement is laughably tiny in the grand scheme of things. Firefox 3 improved JavaScript, at least in artificial benchmarks, by magnitudes more than Jeff's 19% improvement...and it didn't cost anyone a thing. Hell, simply changing string concatenation (see the ridiculous SunSpider benchmark for an example of that in action) can be a factor of 100:1 in performance.
Dennis Forbes on April 18, 2008 8:02 AM"Am I the only geek on the planet who cares about software, but not hardware?"
Any time I encounter a developer who can swap out PC power supply at a moment's notice or overclock their CPU, my level of respect for them INSTANTLY increases by several orders of magnitude. Right then and there I know they are passionate about speed, efficiency, and tweaking to maximize potential and there is no question that translates to their coding ethic.
On another note: I own both a Duo and a Quad and I would take a 3.6Ghz Duo over a 2.4GHz Quad ANY day of the week.
Matias Nino on April 18, 2008 8:03 AMHow, exactly, do you "watch a video" and do anything else at the same time?
I regularly have an MSDN open on another window while doing "real work", context switching at interesting movements. I hardly think I'm rare. Hell, sometimes I have a full-blown, full-screen game running in the background, AFK, while I do some SQL work or finish a compile. Again, I doubt I'm rare.
You live in an odd little world, Jeff, when you think it's all about your single-process artificial benchmarks and hoping for JavaScript benchmarks to finish quicker.
Dennis Forbes on April 18, 2008 8:05 AMIrrevocable and permanent?
BIOS flash chips are a standard part, and almost always socketed; even without using the infamous swapping trick, you can simply use an external flash programmer. Most BIOS flash upgrade files I've seen are a simple image of the flash contents, so you don't need to use the original flashing program or find out how to decode it.
Anonymous on April 18, 2008 8:15 AMI so very much disagree with you this time, Jeff.
"... those four cores provide almost no benchmarkable improvement in the type of applications most people use. Including software development tools."
Huh? Paint.NET, for one, shows large gains on quad-core versus dual-core systems. There's even a benchmark, http://paintdotnet.forumer.com/viewtopic.php?f=16t=21669 (admittedly the *benchmark* doesn't fully correspond to the full app's performance -- I have done that test though and the difference is noticeable). I'd say that qualifies as "applications most people use."
Visual Studio 2005 and 2008 also benefit, which allow for multithreaded builds. The latter saves me a lot of time every single day. I'd say that counts as a "software development tool." Many non-Microsoft build systems are multithread aware/capable as well (VS was probably the last on the block to get it, in fact). At work our command-line build system is multithread aware and we've noticed large gains going from single to dual to quad core over the last few years.
Running a few CPU-hogging Virtual PC's and still having plenty of CPU power left over for lots of other stuff is a very nice benefit as well. As a developer, I can't see any reason to *not* have a quad-core CPU with the prices down at ~$260 USD for a Q6600. Same with 8 GB of RAM going for $175 USD (and those are prices from Dell! newegg is even cheaper).
Rick Brewster on April 18, 2008 8:20 AMGah! That BIOS flashing story sent chills down my spine, too. How scary.
James Justin Harrell on April 18, 2008 8:34 AMJeff,
I had the same thing happen to me, (64 bit Windows Vista on a P5b-e) luckily the supplier replaced it with a shiny new Asus p5k, i was rather disapointed that the Asus CRASHFREE bios was rather useless in trying to fix it.
Out of interest what motherboard did you get? Also, how do you think the northbridge would have coped with the 1680mhz FSB of your overclocked e8500? Its hot at the best of times on those boards at standard speeds.
I think any discussion of overclocking (especially with these new higher FSB chips) must also press the importance of decent memory chips.
Stephen McKenna on April 18, 2008 8:38 AMSo you spent $300 and a couple of hours of your time. How much is your time worth? Plus time to RMA your MB. And time spent tweaking the overclocking settings?
If Microsoft didn't tie your installation to a particular hardware signature it would just be easier to move your hard drive to a faster off-the-shelf computer and boot it back up. If only it was that easy.
But we can't deny that it is nice to be able to sit back once it is all up and running and say "I built that".
Chris Chubb on April 18, 2008 8:45 AM@Weeble and @Pete
I'm pretty sure the Asus P5B Deluxe mentioned in the article (that I own myself, paired with a Q6600 that I love, can't figure out how to get it to overclock though) has a secondary BIOS to prevent bricking. As to how he bricked it in the article, I don't know, because according to Asus that shouldn't be possible to do with a second BIOS.
In the manual, under the features, it has the following:
"ASUS CrashFree BIOS 3"
"The ASUS CrashFree BIOS 3 allows users to restore corrupted BIOS data from a USB flash disk containing the BIOS file."
I believe this would solve the issue if you could get the BIOS onto a USB drive on another computer.
Also I should mention that I have flashed my board from in XP x64 several times without incident (so far).
Edgeman on April 18, 2008 8:46 AMLong time reader, first time poster...
Great timing with this post, I am getting all of the components for my first build today. After classes I shall spend the rest of the day building my first home build PC. I am excited.
stephenjoshd on April 18, 2008 8:58 AMI think the most interesting point illustrated by your benchmark results is that we may be entering an era in which software efficiency, even for single-user desktop-type applications, is more important than it has been in the past.
CPUs of this approximate capability (Core 2 Duos @ 3GHz stock) have been available (although expensive) for nearly two years. By the standards of crazy-fast computer hardware advancement most of us have become accustomed to, things are moving at a glacial pace today.
It used to be true that the easiest, and sometimes even the most cost-effective way to speed up a system was to move it onto fast new hardware. Operating systems, applications, and games were developed with the assumption that average hardware available by launch would be faster than the best hardware available at the start of development. From a business perspective, shortening development time mattered more than the efficiency of the resulting software. But as the pace of hardware improvement slows, the effectiveness of that approach may diminish.
This may actually make software better in the long haul, because it may mean a slower, more serious, engineering-type approach to software is an asset instead of a liability.
Western Infidels on April 18, 2008 9:00 AMWow, you're still pushing the easily disproven "quad cores aren't useful for the desktop" nonsense?
I suspect that you've decided to clutch onto defensiveness for your original poor advice for upgraders, and now you're building a ridiculous wall of support.
Given the price of the quad cores, honestly you'd have to be close to moronic to buy a dual-core right now (apart from laptops of course). Mentioning energy usage is just ridiculously laughable, and if you want me to eviscerate that particular red herring, I happily will.
Dennis Forbes on April 18, 2008 9:11 AMI think you'll wind up eating humble pie on Quad Core's as well.
Jeff should have been eating humble pie shortly after he wrote his original article, but instead he'll lean on dated, cheery-picked benchmarks in artificial situations.
Honestly, it borders on outrageous to still be pushing the obsolete "two-cores is enough for anyone" nonsense. It was laughable then, and it's just extraordinary now.
Dennis Forbes on April 18, 2008 9:15 AMI use Linux and GCC under Eclipse, and dual-core is noticeably faster for day-to-day development with -j2. However, though I often change multiple source files at once, I would rarely benefit from 4 cores rather than a faster 2 core CPU; I sometimes change more than 2 source files at once, but the amount of time I do isn't enough to offset the loss of speed on all my other compiles.
AndyCR on April 18, 2008 9:22 AMAndyCR,
So you're saying that you're doing incremental compiles with -j2, and 2 just happens to be the sweet spot? (I'm just going to completely ignore Jeff's unbelievable reference to SunSpider's terrible benchmark -- a turdmuffin that Jeff eagerly heralded when it had extraordinarily unrealistic cruft in it -- Guess what, Jeff, your ridiculous test of a completely unrealistic benchmark makes 0 use of your second core).
If you're doing incremental compiles, the process should be close to instantaneous. If you're doing a full compile, then -j4 will be the sweet spot, and will easily outpace even an absurdly overclocked "desperately trying to prove my case" dual-core.
Dennis Forbes on April 18, 2008 9:31 AMI have negative emotions about upgrading. When I went from an 8088 to an 80366, the performance increase was HUGE. Likewise when I upgraded that box to a 2.5 GHz Centrino a few years ago. I've increased memory and changed a few peripherals since, but I haven't seen anything lately that would give me a 5-to-10 fold performance gain. I don't run cutting edge games and my current untweaked box runs everything I need including a few legacy DOS-only programs. I'm just not willing to spend the money and the time for a faster machine, copy and/or reinstall all the software, and maybe compromise the system's stability just to cut a few seconds off the time it takes to load Flight Simulator.
I'll stick with my current configuration ($350 after rebates, and that price included a new CRT) for a few more years. I've worked for a "bleeding edge" computer manufacturer, and helped design strategic nuclear missiles. Creating the best in the world took more 36-hour workdays than I want to remember. Right now I'm happy with XP on may desktop. It does the job and I don't have to fiddle with it more than twice a year. I turn it on an it works. No glitches, no BSODs. Why should I mess with it?
Izzy on April 18, 2008 9:39 AM@Izzy
I have to say it: what was the point to your post? I'm not looking for an argument (really, I'm not), so apologize in advance if that sounds offensive. To understand you better, though, you're essentially speaking up in a thread largely about processor upgrading and the diminishing returns of quad-core and dual-core computing by saying that you don't need to upgrade, so why should you?
Well. You're right: you don't need to. So don't ;) Your needs are aligned with the type of user who puts relatively low technological demand on their system and you will probably only *need* to upgrade when current software is no longer supported (old versions of the O.S., old anti-virus software that no longer functions, etc.). New hardware is often needed to support new operating systems, but that's a far cry from the top-of-the line hardware mentioned in this thread.
You're also not going to see 5-to-10-fold performance gain boosts in upgrading from just a few years anymore (and I don't mean to say that as in 'ever in the future'), but as Jeff pointed out, the technology required to make huge leaps past the silicone barrior haven't been breached yet, and that's essentially what's holding us back at the moment.
Pete on April 18, 2008 9:46 AMI got trouble overclocking a PC, mainly because of the memory. I tried increasing the memory voltage from 1.85V to 1.95V and it didn't work. Note that it's a Supertalent DDR2 400Mhz memory, and that I only boosted the FSB from 266Mhz to 300Mhz, a very small increase. I've heard that I had to increase the CPU voltage, but the bios won't allow it to do that. It also wont allow me to change the FSB:Memory clock ratio or the multiplier (duh, I got a Core 2 Duo E6400). Do I have to upgrade my BIOS firmware, get another motherboard or use a Windows program to change the FSB and reboot? My motherboard is a MSI Neo P965 based on the Intel 965 Express chipset.
Alex on April 18, 2008 9:52 AMI would agree with you that 2 faster cores will execute much quicker than 4 slower cores, but I think you're overlooking something very important, and that is responsiveness. I recently upgraded to a 45nm quad core processor, and I am much happier with it than I was with a dual core. This is because I tend to run lots of things at once, I count 8 open application windows across 3 monitors right now.
The benefit of a quad core processor to me is that I can run lots of software at once, without having to worry about anything being starved for cycles.
jcnnghm on April 18, 2008 10:04 AMLook at your motherboard manual, some MB (like my DFI LanParty SLI-D) have a little jumper that resets the bios. I had a similar problem when I tried to update my, but I was well aware of that little jumper, so there was no chill on my spine =) . Bios these days are stored in Flash memmory, not ROM anymore...
Hoffmann on April 18, 2008 10:23 AMQuoted from article: "I did a bit of research, and I was surprised to find that the P965 chipset on my Asus P5B Deluxe motherboard supports the latest and greatest Intel CPUs. This is a pleasant surprise indeed; Intel and AMD change the pinouts and sockets of their CPUs quite regularly. A simple CPU upgrade, more often than not, forces a complete motherboard and memory upgrade."
Careful what you say there Jeff, Intel has been on the same LGA775 socket for some time now on the desktop(since the Pentium 4 days), with new CPU architectures at most requiring a bios upgrade (Such as the introduction of Core 2, Quad-Core, etc). AMD is the only one still changing there sockets and pinouts every time they introduce a new type of processor (Their new Phenom quad-cores don't sit in the old AM2 socket, they require a whole new board).
Meis on April 18, 2008 10:26 AMProgrammers do love edge conditions.
I've said, repeatedly, that if you know what the edge conditions are and feel that you live there -- like Rick, above -- then by all means go for the quad over a faster dual. If you apply highly paralellizable filters to images all day long, then that's what you should look at.
Be an informed consumer. I could certainly buy a quad if I thought it made sense. I don't think it does yet.
Far too many people I've talked to assume that 42 in all situations, when in reality, 90 percent of the time you'll get no benefit from more cores -- whereas *every single app you run* would go faster at a higher clock rate.
Jeff Atwood on April 18, 2008 10:26 AMcontext switching at interesting movements. I hardly think I'm rare
Are you sure you're not falling prey to the multi-tasking myth?
http://www.codinghorror.com/blog/archives/000691.html
That seems like a fairly big voltage increase you are running for a 45nm processor. I have read reports of people killing a 45nm processor with 1.4V. Are you sure it really needs that much? My quad core (Xeon X3350) is running fine at 3.7ghz on just 1.28V and I have read that dual cores overclock higher with less voltage than a quad core.
Tim B on April 18, 2008 10:31 AMSorry to hear about your bricking. A bad BIOS flash is like a nightmare...
Noah Callaway on April 18, 2008 10:36 AMThe Quad core might not speed up individual applications (performance) but it does reduce the delay multitasking incurs (responsiveness). Additionally, modern software *is* being written to exploit multiple cores (parallel compile and bleeding edge gaming software).
Telling people to not purchase Quad cores is like telling people not to upgrade to chips with SSE style multimedia instructions back when they were new, or to the Pentium (which required a recompile to not be *slower* than the old chips). No, not a lot of software was using the feature when they were released, but they became a standard part of any multimedia software's toolkit. Likewise, writing software to use threads that can exploit more cores is just another tool in the tool box; I for one have decoupled my data access layer threads from the UI threads a long time ago. Not because of performance, but again to make the UI feel more "responsive" even when data was streaming into a table. Now I get performance as a free bonus for any code written that way and that has more cores at its disposal.
John Lopez on April 18, 2008 10:39 AM@RWW: Then don't read the post. No one is forcing you to read it, and in fact no one is even forcing you to visit Jeff's blog. Please don't waste our time posting your nonsense.
KenW on April 18, 2008 10:41 AMIs there a good way to find out what the bottleneck of a PC is?
Alexey Romanov on April 18, 2008 10:44 AM"Including software development tools."
Bzzt! Wrong. VisualStudio benefits from any and all extra cores at the flip of a switch. And if I'm not mistaken, XCode doesn't even need a switch to be flipped.
W on April 18, 2008 11:33 AM"Including software development tools."
I forgot to add: at the office, the vast majority of Windows developers are stuck with Dell Business machines, which have no overclocking possibilities. I'll take the cores, thank you very much.
W on April 18, 2008 11:35 AMJeff,
How would you suggest developers write applications (this is what we are, and what we do, right?) that can actually leverage 4, 8, etc... CPU cores if we are running solo or dual core systems?
I put this right up there with having multiple monitors. Developers need them, and not just to improve productivity, but because they won't under stand just how badly their application runs across multiple monitors unless they actually use it. The same is true with multi-core CPUs.
Kevin
Kevin on April 18, 2008 11:40 AMI'm still happy I bought the Core 2 quad. I'm running BOINK uFluids at home 24 hrs a day and its software utilizes all 4 cores. And when it's running like that my core doesn't even sweat, reaching 32C. I have a great heatsink so I think I'll start fiddling around with overclocking.
PaulG. on April 18, 2008 11:44 AMDefinitely on the "I run more than one app at a time" bandwagon. Don't you, Jeff? Looks like you do: http://www.codinghorror.com/blog/archives/000963.html It's nice to know that when those apps come out of being idle and want to flex their muscles they won't have to wait for resources.
So my OCed quad core only hits 3.4GHz. I don't think I'll lose any sleep over the fact that there are people running faster chips out there. Seriously, only 4GHz? Be a real man and run a sub-zero phase-change system and get up to 5+ already. Geez.
Rich on April 18, 2008 11:51 AMWhat about us gamers how does duel vs quad core hold up? I would imagine quad would be better but I could be wrong. Why did you use JAVA as a bench mark? Why not something a little more demanding like the latest DirectX10 game or what not?
Chris S on April 18, 2008 11:59 AMWhat about us gamers how does duel vs quad core hold up? I would imagine quad would be better but I could be wrong.
Many modern games know how to scale out across cores. Call of Duty 4 singleplayer, for instance, pushes AI and the game engine to all cores (less obvious for multiplayer because there's such an excess of computational power with a Q6600 that it doesn't need it). Oblivion uses all cores. I could go on and on.
But here's the best part -- I don't use my PC just to run benchmarks. That's something that overclocking enthusiasts do as a hobby, similar to putting a big fin on their Honda Civic. Instead I use it as a multi-talented beast, and with 4 cores (better 8, or 16, or 32...) when doing things that don't use all the cores, there's goodness left over for other things. Of course for the actual things where I might actually notice a difference in CPU speed -- e.g. media encoding -- the four cores absolutely dominate.
Why did you use JAVA as a bench mark?
Oh if only. Worse, he used JavaScript. Not just JavaScript, but one of the most terrible benchmarks of JavaScript ever made (it is so artificial and unrelated to real "pain points" of the web that it is embarrassing). JavaScript is single threaded...for a single "instance". Maybe I'm an anomaly, but I don't spend my days running JavaScript benchmarks.
Another thought:
"Intel EDAT: the End of the Multi-core Clock Speed Disadvantage?
Intel also talked about its "Enhanced Dynamic Acceleration Technology" which is effectively integrated overclocking based on load. If you are running a single threaded application (or a multi-threaded application that's predominantly using a single thread), Intel's EDAT can power down the second core and increase the frequency of the working core to maintain the same thermal envelope at all times.
Intel's EDAT could spell the end of the clock speed differential between single and multi-core processors. With all cores running workloads, the multi-core system would be clocked lower, but when some cores are idle the chip could potentially run at the same speed as a single core solution would. Single core designs have pretty much disappeared from roadmaps already, but considering there are still applications that are single threaded in nature and benefit more from clock speed improvements, future processors will offer both options in a single package."
Summary? On unoptimized threads that really need clocks, the CPU will be able to power down one core and overclock another automatically. Completely blows the 'faster CPU clock speeds slower, but more cores' argument out of the water.
(source: http://www.anandtech.com/cpuchipsets/intel/showdoc.aspx?i=2955p=2)
Pete on April 18, 2008 1:40 PMLike someone else asked Jeff, what temps are your cores running at?
Would be interested to hear what you think are fine operating temps.
:)
Steve
Steve on April 18, 2008 1:57 PM"Programmers do love edge conditions."
Jeff, honestly I think you're slipping into a weird defensive and patronizing attitude with this blog post and your response to comments here. You just come off as cranky, sounding like you haven't had your coffee yet, or woke up on the wrong side of the bed. It doesn't become you.
"If you apply highly paralellizable filters to images all day long ..."
This isn't about doing things "all day long," Jeff. If I optimized my computer purchasing for what I did with my computer "all day long" or for the "90% of the time" that you keep mentioning, then I would still have a Pentium 1 because it is much more power efficient at idle than any other modern desktop x86 CPU. Because, hey, I don't use my computer all day long, and it is thus idle for the majority of the time. 90% of the time I wouldn't have any benefit from anything faster than that Pentium 1, so using your logic that's what I should be using.
No, I have a fast quad core so that when my computer *is* doing something compute intense and/or that is parallelizable that it goes faster and doesn't waste my patience. Even if it's a drop from 10 seconds to 6 seconds, or an increase from 20 frames per second to 30 frames per second, or whatever. I also have 8 GB of RAM, should we talk about what a waste that is as well? Except that every so often it honestly saves me a *lot* of time, even though the other "90%" of the day it's "wasted."
Personally, I don't have a quad core so that I can "run like a server d00d" or run image filters or video encoders all day. I'm not sure when you drew this line in the sand that places dual-core owners on your side and quad-core owners on the stupid side. Like I said, this blog post doesn't become you. This article and comment responses must have been written by the Evil Jeff. Where's the other Jeff who is really smart and interesting ...
There currently *is* a looming crisis of sorts where we're supposed to have something like 64 cores on the desktop by 2013 and we don't yet have the right development tools to really utilize all that performance potential. Some of us developers are actually involved in wickedly cool research and prototyping to figure out how we can utilize more than ~15% of the potential CPU power of those 64-core boxes, http://blog.getpaint.net/2008/03/23/paintnet-just-can%e2%80%99t-satisfy-an-8-core-opteron/ . Strategies that scale well at 2 or 4 cores start falling apart at 8, 16, etc. cores. There's actually two interlocked issues -- Step 1: Make concurrent development safe. Step 2: Optimize performance. Step 3: Profit!
I'd much rather read on your blog about the software development issues related to this problem instead of this new "I haven't yet had my morning coffee"-style rhetoric.
Rick Brewster on April 19, 2008 2:22 AMIn my opinion, quad-core CPUs are still a waste of electricity unless you're
putting them in a server.
... or you're writing, and need to extensively test, a heavily multithreaded app. The code I'm working on now will 100% saturate all four cores of a quad-core CPU with ten threads active. The processor usage graph is something to behold, a quick rise to 100% and then a solid block of colour across the graph for all cores (actually it may do it with less, four threads gives you 80% across the board). Anyway, I'm specifically using a quad-core CPU to be able to test performance in these situations. Max measured load on actual servers has been more than 1000 threads. There's no way you could test something like this on a single-core CPU, and even dual cores doesn't provide 100% reassurance of real-life performance.
Dave on April 19, 2008 3:01 AM@Rick Brewster
"This isn't about doing things "all day long," Jeff. If I optimized my computer purchasing for what I did with my computer "all day long" or for the "90% of the time" that you keep mentioning, then I would still have a Pentium 1 because it is much more power efficient at idle than any other modern desktop x86 CPU. Because, hey, I don't use my computer all day long, and it is thus idle for the majority of the time. 90% of the time I wouldn't have any benefit from anything faster than that Pentium 1, so using your logic that's what I should be using."
I think you'd find that if you switched to the Pentium 1, you'd spend 90% of your time doing that one computer intensive thing.
"No, I have a fast quad core so that when my computer *is* doing something compute intense and/or that is parallelizable that it goes faster and doesn't waste my patience. Even if it's a drop from 10 seconds to 6 seconds, or an increase from 20 frames per second to 30 frames per second, or whatever. I also have 8 GB of RAM, should we talk about what a waste that is as well? Except that every so often it honestly saves me a *lot* of time, even though the other "90%" of the day it's "wasted.""
Yes, but surely if that saves an average of 4 seconds on every one of those tasks, even if you're doing one of those tasks every hour, that's only saved you a minute and a half. That's probably not worth the extra money.
Also, because non-multithreaded apps will be running slower than on a faster dual core (which is what Jeff suggested), you'll be wasting more than that minute and a half on them.
There are 3 values going in here, Speed of Processor, Number of Cores, and overall cost (inc. power costs).
I think what Jeff's saying is that Speed and Cost vastly outweigh core numbers, because of the rarity of decent multi-threading, especially over quad cores. He's not saying that "4 is never better than 2", he's saying that "4 5% slower cores are worse than 2 5% faster cores".
@Rick
"Some of us developers are actually involved in wickedly cool research and prototyping to figure out how we can utilize more than ~15% of the potential CPU power of those 64-core boxes"
Jeff just said, right there in the post above this:
"I've said, repeatedly, that if you know what the edge conditions are and feel that you live there -- like Rick, above -- then by all means go for the quad over a faster dual."
@Rick:
"I'd much rather read on your blog about the software development issues related to this problem instead of this new "I haven't yet had my morning coffee"-style rhetoric."
Well, as you're clearly not actually reading what he's writing, that shouldn't be a problem.
No, I think Rick, Kevin, and to a lesser extent Dennis (minus the anger), are right. I posted a clarifying blog post here:
http://www.codinghorror.com/blog/archives/001103.html
Jeff Atwood on April 19, 2008 6:11 AMOh, the irony. Someone who recommends using iRaptors/i is against iquad cores/i?
Reinis on April 19, 2008 6:59 AMHow, exactly, do you "watch a video" and do anything else at the same time?
I'm also writing a book on IronPython. Some processors can multitask. ;-)
Michael Foord on April 19, 2008 8:21 AMand to a lesser extent Dennis (minus the anger)
Yeah, to a lesser extent... Sorry, Jeff, I was right and you were wrong many fold 6 months ago, and I'm even more in the right now.
And there's no anger, Jeff. Just honest disbelief that such ignorant prattle -- and worse defensive clutching to the ridiculous -- can come out of a seasoned developer's lips.
Keep on digging, Jeff, but honestly you're just looking ridiculous now (cue some CodingHorror fanboy development-community bottom feeder to tell me I'm a poo-poo head).
"Clarifying" indeed -- you seem to have no idea what you're talking about, and in the face of overwhelming evidence you'll just continue to adapt your rhetoric until it's even marginally correct, and then claim retroactively that you've been saying it all along.
I suggest a new tagline, Jeff -- "Jeff Atwood -- Spending 99% of His Day Running SunSpider Benchmarks". That about encapsulates your position.
Dennis Forbes on April 19, 2008 8:24 AMThe comments to this entry are closed.
|
|
Traffic Stats |