Oh! Computer! Right!
So the Resident Murloc's profit sharing bonus came in the other day, and we used a small amount of it to upgrade our computers. It had been over five years since I had upgraded and the signs of age were starting to show. I do have to say, though, that I like how the upgrade treadmill has slowed to the point where a five-year-old computer can still play recent releases and make them look good. Is Moore's law finally reaching its end or is software just not bloating to take up the space provided? Perhaps games are scaling better to low end machines? All I have to say is that my 1998 purchase (Pentium II 266, 32MB RAM) would not have run the 2003 releases the way my 2004 purchase (AMD Athlon 64 3000+, 512MB RAM) runs the 2009 releases.
Anyhoo, the specs:
The Murloc's is almost identical, except she wanted an ATI card, so I gave her a Radeon HD 4870, 1GB. (I would like to point out that her video card has as much memory as my entire old computer.) Also, since hers was an upgrade, where mine was a clean build, she didn't need the case, hard drive, or OS and just re-used her old ones. She did need a new PS, as the video cards we got both required 500W power supplies, minimum.
The Murloc's birthday present had been an Acer 22" flat screen monitor (I can't believe how cheap those things are now!) and a 17" monitor, so she could have dual monitors. With this round of purchases, I got another 22" for her and took her 17". Her desk can now better be described as one big display, with a little bit of space for other miscellanous items.
All were purchased from Newegg (Once You Know...). The totals were about $800 for mine and $700 for hers, which is a flipping sweet deal for two brand-spanking-new high-end computers.
A few thoughts:
-I'd been planning and researching this build for a little over a year. Initially, I'd been planning on getting a dual core processor, probably the Core 2 Duo E8500. At the last moment, I noticed that Intel had introduced a new quad core (probably the last of the Core 2 Quads) in December, priced in the range I was looking for. After doing a little bit of research, I opted for it over the dual core. While I figure the dual core probably would have been faster for single applications such as games and such that don't require much multi-tasking, there just something really cool about playing WoW with the settings at maximum and having two cores completely unused.
I wonder if I could run both WoW AND Call of Duty at the same time?
-Shamus Young wrote this hilarious satire on video card shopping which, I have to say, I have never experienced. My process for buying a video card is:
1) Determine a price point (usually $200)
2) Find out what ATI and NVIDIA offer at that price
3) Visit Tom's hardware to see which one is faster (they're usually almost identical; in this case, NVIDIA seemed to have a bit of a lead).
I didn't really understand what the performance difference was going to be between 1GB of 256-bit GDDR5 memory and 896MB of 448-bit GDDR3 memory. Nor do I care. Manufacturers are usually quite good about pricing their hardware at the same cost as the similar-performing product of their competition. Similarly, they're also usually quite good about pricing their own items in a relative cost scale. Really, the only fluctuation comes from the video card brand, so all you have to do is pick a chipset and find the cheapest brand (that you trust) that uses that chipset.
Processors are similar, as when AMD released their quad cores a little over a year ago, they were 13% slower than Intel's. They were also 13% cheaper.
Which brings us to....
-This is my first Intel-based computer since my first one (the afformentioned Pentium II). My previous two have both been AMD based. I had been following the war between the two manufacturers for a while, and while AMD did have a performance and price lead over Intel for the first half of the decade, Intel eventually got their act together and used their behemoth might to start out-engineering AMD. When I first began planning this build, Intel was the clear leader in processor performance, so I was only considering them. Since then, AMD has started competing in all but the bleeding-edge market. However, as I had already researched Intel motherboards and processors, I didn't want to then have to do the same for AMD as well.
Also, my understanding is that AMD chips are, as they have always been, geared towards the enthusiast and over-clockers market, the idea being that you buy a relatively cheap AMD and OC it to be as fast as the high-end Intels. As OCing is something I have never had a desire to do, I opted for Intel's offerings.
-I LOVE the new pin-less CPU designs. Fretting about bending pins while installing the CPU always bothered me. I would place the CPU in the motherboard, then take it out to check I had put it in right and hadn't bent anything, then put it back in, then take it out to make sure I hadn't bent anything that time, put it back in, rinse, repeat. Now the CPUs just have copper contacts, and the motherboard has a shell that clamps the CPU in position. Voila! No bent pins.
-Speaking of designs, the new video cards are BEHEMOTHS. I remember when I was appalled that video cards began requiring that you connect them to the power supply. Now, it seems, all video cards require two plugs from the PS, from different rails. And they take up two slots in the case. And they're longer than the motherboard is wide. Although, it is cool how they're completely encased in a plastic shell, so all the delicate electronics are inside. Rie's card also has copper piping to direct heat to different parts of the heat sink.
-Installation notes: If you assemble a computer and you go to turn it on, and it doesn't power on, the absolute first thing you should do (after making sure that you're not an idiot and you remembered to plug the thing in) is unscrew the motherboard and try it again. This was a failure mode I first encountered when I assembled the Murloc's first computer in 2004. After struggling over why it would not power on for two days, I finally found out that removing one of the mobo screws allowed it to turn on. Apparently, using screws that are two short can bend the motherboard and that will cause it—for some reason—not to turn on.
I encountered the same thing with my computer this time, and after just a little bit of fiddling, got it to work. Oddest. Failure mode. Ever. And a royal pain to diagnose.
-Always, always, always backup your data before upgrading. Almost as expected, installing a new everything in the Murloc's computer required a re-install of Windows (it could probably be better though of as installing an old hard drive in a new computer). Her documents were all saved on a separate partition, but for a while we thought she'd lost everything in her user profile directory, which includes all documents on the desktop, and her Firefox bookmarks. It wasn't until a day later that I discovered that the XP installer, in its infinite wisdom, will not overwrite existing user profile directories when installing a fresh copy of Windows, even if you overwrite the existing copy of Windows. Data saved.
-My OS installation was much simpler. Blank hard drive, fresh install. I have been using Vista for over a year now at work, and now I've finally gotten it at home. I really have to say that I really, really, really don't understand all the Vista hate. It's a great OS. It's slick and smooth. Now that I have two computers with (almost) identical builds, and have XP and Vista, I can really compare the two, and Vista seems faster in most shell operations. In my last rant on the subject, I covered some of the annoyances of the XP shell, such as the pauses when opening or changing directories in Windows Explorer. There were also annoyances, like when you'd delete a shortcut off the desktop, or out of the Start menu, and it would take 5-10 seconds and give you a progress bar(!) to delete one item. Shuffling shortcuts and groups around in the Start menu was also similarly frustrating in XP. I always thought it was just a hardware thing, and the reason that didn't occur in Vista was because the Vista machines I've used have had faster hardware. Now that I have a Vista machine and XP machine with nearly identical specs, I can verify that those OS shell lags and latencies really are a product of XP and are gone on Vista.
Another complaint about Vista is the memory usage, but come on, you can get 4GB for $50 now. RAM is cheap. And even with WoW running and sucking up 1.5GB of memory, I still haven't seen the memory usage go much above 3GB.
-My original plan was to put Ubuntu on this computer and have a Vista/Ubuntu dual boot. That seems less and less necessary now. I'm more likely to put Ubuntu on my old computer. We'll see.
-Off-topic: The first chapter of Wallace & Gromit's Grand Adventures dropped last week. Why haven't you played it? Anyways, it's quite fun, though it seemed much shorter than most of Telltale's other episodic adventures, or maybe I'm just getting faster at solving the puzzles.
One thing Telltale captured beautifully was the claymation style. While I was playing, I began subconsciously noticing the imperfections in the models, as if they had been hand crafted. It then dawned on me that they had bump-mapped fingerprints onto the models, to really give it that hand-animation feel. Brilliant.
That is all. Further bulletins as events warrant.


I still say my video card resembles more of a Harley Davidson than a video card. O_o
ReplyDelete~ The Resident Murloc
With all that memory and compute power, you should be able to churn out those novels in no time now!
ReplyDeleteTom's Hardware has a monthly "Best graphics cards for the money" article that usually has good advice, but the best part of it is at the end, they have a Graphics Card Hierarchy Chart that shows the comparable performance levels between and within brands.
ReplyDeleteMy "A" computer currently has an ATI Radeon 9800 PRO, last upgraded from a GeForce 2 MX (way down near the bottom). My "B" computer is still running the trusty ol' 3dfx Voodoo3 3000, which is inexplicably absent from the chart.
I remember the motherboard screw issue. The Blue Fox and I once wasted a lot of time troubleshooting a power-on issue, when finally after much frustration we tried a different power CABLE, which solved the problem.
Good pick on the case, plastic is for wusses.
It's SO much easier just to go to the Dell website and randomly point at a computer-looking thingy, and make Northrop pay for it...
ReplyDelete- Dad
"I still haven't seen the memory usage go much above 3GB."
ReplyDeleteSeriously? C'mon. As if a x86 32bit machine is capable of addressing anything above 3GB.
You know (deep inside somewhere) that you need a 64bit OS in order to get to that fourth GB you purchased.
My current and nearly 4 year old machine is a 3GHz Pentium 4, and until applications can take advantage of "multiple" cores, I don't think I will upgrade.
------
My prediction of the future:
Once programmers are able to easily program for multiple cores, 16, 32, 64, 128 and 256 core machines will hit the market rendering the "processor race" null and void.
Motherboards will be the only bottleneck.
Memory will be cheap and plentiful.
Harddrives will be solid state (moving parts are a joke)
Video cards are already moving to the "lots of cores" architecture, so developments will be towards real-time ray tracing
I think a combination of the Cisco Project California with video cards as peripherals to your monitor will be the next big step. (a fiber connection between the router/VM box and the display is all that is needed)
Behold the mainframe! It shall return!
(I'll probably upgrade once I know the requirements for Diablo 3.... which means probably after Christmas '09)
Since you missed it the first time:
ReplyDelete*ahem*
My OS is perfectly capable of addressing 4GB. In fact, it can address up to 128GB. (My motherboard can only store 16GB, though.)
Some of the applications I use do take advantage of multiple cores. WoW uses two; Call of Duty will use all four.
Oooh... I missed that detail.
ReplyDeletegood call on the 64-bit OS.
My office mate has a Dell Precision 690 with 25Gb of RAM... he's tried to use all of it, but can't get past 15GB. (While running multiple instances of 3DSMax and some other video editing software)
Another coworker used to be at Intel a few years back, and they had 32-core processors in the R&D labs, but the market isn't ready for that capability yet. Then again, it seems most programs haven't even moved to 64-bit applications yet either.
On a different topic, I was just reading about OnLive and that seems to be moving in my "mainframe gaming" mode of thought.
Although, for more military accuracy, I would still process video locally so your machine consisted of a boot ROM, NIC and VideoCard directly plugged into a PCIe port on your display. All applications, processing and data would be remote.
Dumb terminals for everyone!
(When the box turns off, you have no local data. The security types would love it!)
I give it 3 years before this takes off in a big way.
Blue Fox, your vision of the future is a pretty accurate description of the present. As a programmer, I can tell you it IS easy to take advantage of multiple processors (you just have to know what you're doing, as always), in fact I'm keeping multiple processors in mind for the new version of Gravity Simulator I'm working on. It will be in C# and I'll make the source available when there's something worth showing.
ReplyDeleteMy understanding is that some applications are extremely parallel in nature, such as video processing.
ReplyDeleteFor example, a render farm of 32 machines with dual quad-core processors really can operate 256 times faster than a single core processor machine, since all processors are equally in use, performing similar calculations across the whole farm of systems.
Yet, for other logic it is not so clear to me on how having 256 CPU cores will be put to use in such a way that the effort of all cores directly aides in a performance boost.
Or...
Why do you need to write software to take advantage of two versus four cores?
What would it take to have programs take advantage of "whatever" is available?
Well, Windows has supported multiple threads for quite a while now (Win95 or earlier), and on single-core processors there's not much point because they just have to take turns with the CPU. With multiple cores, separate threads can run concurrently on different CPUs, greatly reducing total execution time with no major conceptual change in the OS architecture. Modern Windows OSes will automatically spread the threads around the available processors for better efficiency.
ReplyDeleteStill, this is talking about running multiple applications. Writing a single application to take advantage of multiple cores is more complex because of the problems inherent in devising an algorithm that can handle asynchronous computational results. Often, the multithreading will be used for things like raytracing (like you mention) where each pixel can be computed in total isolation, or for applications that require the processor for unrelated tasks, like the UI and renderer of a web browser.
In answer to your questions:
1) Depending on the application, it is not always advantageous to take advantage of multiple cores. However, modern OSes often have so much going on that there is an overall benefit simply by having them.
2) What it takes is for the application developer to design his architecture in such a way that as many separate processes as possible can be run asynchronously. This can be very hard, and for normal everyday applications the limit on what you'd ever need would be very low. More complex simulation or rendering type programs that are computationally intensive stand to gain the most, if it can be done (games fall into both categories).
Consider the gravity simulator: it is difficult to multithread because each planet affects each other, modifying its behavior. With 1000 planets, this means 499,500 pairs of planets. I've optimized it for single-thread execution by only doing distance (d=sqrt((x1-x2)^2+(y1-y2)^2)), gravity (G*m1*m2/d^2), and collision detection (d < r1+r2) calculations once per pair, meaning these are run 499,500 times per frame.
Alternately, I could loop through each planet, and compute how it is affected by each other, and if I only modify one planet at a time, it will require 999,000 sets of gravity calculations (exactly double because each pair is considered twice), however it becomes very parallelizable. Two cores would be required to match the performance of one core using the previous method, but four cores would provide about double the performance.
Also, see a discussion of real-time raytracing here, and a related post about multiple core scalability here.
ReplyDelete