Today's Best CPUs Compared... To a Pentium 4 354
Dr. Damage writes "How do current $74 CPUs compare to the $133 ones? To exclusive $1K Extreme Editions? Interesting questions, but what if you took a five-year-old Pentium 4 at 3.8GHz and pitted it against today's CPUs in a slew of games and other applications? The results are eye-opening." Note that this voluminous comparison is presented over 18 pages with no single-page view in sight.
Games don't use multiple cores? (Score:3, Insightful)
From the article:
How can game engines not take advantage of multiple cores? I had no idea this was the case, and find it very surprising given that the PS3 has 7 cores to work with. Are games so lazily programmed that they don't take advantage of that either?
Eye-opening? (Score:5, Insightful)
Re:Games don't use multiple cores? (Score:2, Insightful)
advantages of multiple cores are not so evident when dealing with real-time physics/rendering/etc.
If all your processes must communicate with each other constantly, you lose the benefits of having each process processed by a different core.
Re:Games don't use multiple cores? (Score:4, Insightful)
Because not everyone has multiple cores so PC games have to go for some version of the lowest common denominator
Which is honestly quite strange, because most games I know require you have the latest uber-$500 graphics card to run properly. I would argue that there is something else involved (eye candy important, multi-core not) in the design process.
P3 Pride! (Score:5, Insightful)
Actually, it's really in semi-retirement, as it's a bit slow for modern applications, but it is still on our LAN and occasionally roused from its grave^Wslumber. At one time, it had Win2000, which it could run OK, but it was a little sluggish running Office2000. Nowadays, it dual boots between Ubuntu/Gnome and PCLinuxOS/KDE, which are about as responsive as Win2000 was. It's fine for most web browsing, IRC, file viewing (graphics, PDF, PS, etc.), text editing, and suchlike. It can handle Gimp and Inkscape once the files being edited aren't too big, and can even run LaTeX well enough, but it sucks rocks trying to run OpenOffice.
Where's the P4 vs. Modern CPUs conclusion ? (Score:5, Insightful)
Isn't this what the article summary gets at ? I couldn't find anywhere in the conclusion how the P4 actually compares to present day processors.
I'm not about to read through 17 pages of all of that just to open my eyes.
Oh, and for CPU comparisons, I usually use:
http://www.cpubenchmark.net/cpu_list.php [cpubenchmark.net]
It's quite reliable for my choices. I just need everything to boil down to a number these days. Too much choice out there. Was simpler when you could just look at Ghz and know which is better. Now a P7700 and T8600 (examples I just made up..) could be at the same clock speed, be called Core 2 Duo and have totally different performance numbers. Confusing!
Re:Games don't use multiple cores? (Score:4, Insightful)
Re:Games don't use multiple cores? (Score:3, Insightful)
As noted, the PS3 is more of a single core PPC processor plus 6 SSE-on-steroids units. Whilst it's true that parallelism needs to be incorporated into the engine design, the tasks you'd farm out to the SPE's or whatever they're called are very different from what you'd ask core3 to do on your x86 processor.
The CPU in the 360, however, is a genuine triple-core PPC processor.
Other factors (Score:5, Insightful)
The article makes a strong case for the i3-530 and the i5-750, but unlike the comparable AMD processors, they have no support for ECC.
If you're using a computer just for game playing and email, that's fine. On the other hand, if you are doing anything which requires reliability — both in terms of machine stability and the consistency of results and data — ECC is a must. The premium that Intel charge for what should be a standard feature prices them out of the value computing market.
Re:Games don't use multiple cores? (Score:5, Insightful)
Because not everyone has multiple cores so PC games have to go for some version of the lowest common denominator
Which is honestly quite strange, because most games I know require you have the latest uber-$500 graphics card to run properly. I would argue that there is something else involved (eye candy important, multi-core not) in the design process.
You need your hyperbole license revoked until you can use some semblance of realism. BioShock 2 literally came out less than a week ago and it runs at a full 60fps at 1920x1080, all graphics settings at their highest, on a Radeon 4870 -- a $200 graphics card when I got it a YEAR ago.
Re:Games don't use multiple cores? (Score:3, Insightful)
I would guess a fairly big factor is because generally the game logic which runs of the processor doesn't degrade well. With graphics you can lower resolutions, change texture sizes and add additional lighting effects which are optional so the game just looks a bit worse but plays the same. Trying to do the same with game logic is much harder, maybe some adaptive AI could be made to play better on faster hardware plus some extra graphical effects probably need some extra processor time but these changes would be much less.
Then the developers want the game to be playable on as many machines as is feasible so they head for as low a target as possible which is a single threaded machine. Making it work on multiple cores then turns into a pretty difficult task for very little gain because of the above.
Re:Eye-opening? (Score:5, Insightful)
Good form sir! (Score:2, Insightful)
Re:Games don't use multiple cores? (Score:3, Insightful)
That's hardly insightful being completely wrong. Physics is one of those tasks that lends itself very well to multi-threading actually.
Its just a completely different way of designing software. Its very hard to find good programmers. Its even harder to find good programmers who are skilled in threaded software design. Just guess how hard it is to find the ones who can debug it :-).
Re:P4 pride (Score:3, Insightful)
Re:Games don't use multiple cores? (Score:3, Insightful)
People always say this, but I don't understand the difference between multi-threaded and single-threaded programming. In multi-threaded programming, I have to lock around non-lockless data structures and make sure my code is logically able to complete without waiting for any other code that's holding the same lock. Beyond that, it makes more sense when I have multiple shit going on at once; there's no juggling, I just write my physics engine to track exactly one moving object with the environment and I'm good. Wind? Wind is a force that finds objects in its way and applies a force to them, which in turn causes another thread (controlling their movement) to process different data than with no wind. Lighting is the same way, as is player input (this one's way easy).
The hard part is WRITING A GIANT GAME. It's hard. Writing individual small programs is easy.
Re:Games don't use multiple cores? (Score:3, Insightful)
Multicore programming isn't really that hard due to the fact your OS is suppose to handle what thread goes onto which core for you.
I can tell you've never written a multi-core program before...
All you really need to do is to split a single thread game into 4 threads. And no, you are not running more overhead. Who told you that? Your OS doesn't simply run every task in the same thread.
The overhead comes from keeping track of 4 separate threads. Between processor scheduling, task switching, memory/cache thrashing, and message passing alone, a 4-thread sequential program will never run faster than an equivalent single-thread program on a single core.
The only possible benefit is to allow the program to split out tasks with a long wait (such as reading from HDD/optical drive) from those that can be done while waiting, but this gains the exact same speed advantage on a single- or multi-core processor.
The real problem with multi threaded game is syncing. Let's say if you break your game into graphics engine, audio engine, i/o handler, and resource fetcher. Of course resource fetcher has to be the parent thread that spawns everything else as siblings since resource access has to be shared. The real problem is when an event is triggered. not all threads will respond to it immediately due to the fact they are all at different stages of execution. So you end up having to write interrupts for each and every thread.
Again, you've definitely never written a multi-core program. Synchronization is simple compared to the real issues. What are those? Deadlock [wikipedia.org] and Race Conditions [wikipedia.org]. Most developers not being capable of handling these issues (particularly on such large programs) is the reason we don't see more multi-thread programs.