Scott Hanselman and I have been doing parallel
builds of the ultimate developer machine.
Except for my Commodore 128, an Acer netbook, and one IBM PS/1
286 way back, I've built every PC I've owned. I used to live in
back half of Computer Shopper back when it was a hulking oversized
magazine an inch and a half thick. I enjoy building machines,
picking components, and tuning the beast, even if I can potentially
get a better deal by buying a Dell or something.
My current PC is based around an Intel E8400 45nm dual core
chip. I had really good luck overclocking that guy using air
cooling, but performance is still lacking. The drives are dog slow,
and the 4gb of memory (it's still running 32 bit so I see even less
- I did the unsupported upgrade path from Vista to Win7 betas to RC
to RTM) doesn't support well having a video encoder running,
multiple instances of Visual Studio and the other things I do as
part of my job (and fun). Here's the current WEI for the
old PC to be replaced:
The scoring is respectable, but far from awesome. I want to kick
it up a few notches in this new build.
Component Matrix
Here's a highly subjective table of what my research has shown
to be the Good/Better/Best choices for a developer machine. I
obviously have not bought each and every piece of hardware here,
but have bought some pieces, and have done a fair bit of research.
Notes after the table.
Component |
Good |
Better |
Best |
Operating System |
Windows 7 64bit |
Windows 7 64bit |
Windows 7 64bit |
Display |
One large 1920x1200 24+ display |
2 or 3 24+ 1920x1200 displays side x
side
|
1 or more 30" Displays running
2560x1600
apx $1500 |
Video Card |
Pretty much anything except on-board
GPU |
nVidia 200 series or ATI 4000 or 5000
series |
nVidia 470+ or 5800 series ATI |
Processor |
Intel Core i7-930 4 core at 2.8ghz
$290 |
Intel Core i7-960 4 core $569 |
Intel Core i7-980x 6 core 3.3ghz
$1000 |
Memory |
8GB memory compatible with your CPU
and Mobo |
8-12GB of dual or triple channel
(depending on CPU/Mobo) |
12, 16, or 24 gb of DDR3 running at
1600+ MHZ |
Primary Storage |
Fast 7200rpm or 10,000rpm drive at
least 500gb. WD 600gb VelociRaptor is a good choice. Two
VelociRaptors in RAID 0 is even better.
$100-$560 |
Crucial 256gb C300 SSD
$610 |
No Best bet for SSDs yet. Seems really
promising for next few years. Stick with Crucial 256gb C300
drive. |
Secondary Storage |
skip |
1tb or more of a decent 7200RPM
drive. |
Two VelociRaptor 600gb drives in RAID
0 or RAID 1 |
Power Supply |
Across the board, you want a
name-brand power supply with a decent efficiency rating. Stay away
from generic supplies. |
Optical Drive |
I don't watch blu-ray on my PC, nor do
I do much for burning, so most any SATA combo drive will do. |
"Good" is the minimum for a productive developer desktop machine
that you will be happy to use.
"Better" is a step above. It means less waiting around for
things to load, more display real-estate and generally a happier
developer experience
"Best" in this case is capped at what I consider
reasonable/obtainable developer dream machine material. While you
could certainly get 4 30" displays and that cool EVGA dual Xeon
board with two 6 core Xeon processors and 48gigs of memory, most of
us would not benefit from that other than bragging rights.
On to the individual components.
Operating System
A 64 bit operating system is a no-brainer here. Across all three
levels I specified Windows 7 64 bit.
What I Chose
Windows 7 x64
Why
If you want more than 3.75 or so gig of accessible memory (it's
around 2.75gb if you have two video cards), you need to go 64 bit.
I develop for Windows, and Windows 7 has proven itself as a very
capable and high-performing operating system for developers, so
choosing Windows 7 64 bit is a simple choice.
Display
Get as many pixels as you can afford, on as few screens as
possible. You'll actually prefer using a single 30" screen vs. two
24" screens in many cases. Of course, 2 or 3 30" screens is pretty
awesome too :)
What I Chose
I personally have a Dell 3007 WFP HC 30" display as my primary
(purchased used on ebay for a bit over $600), a 20" up top for twitter
and a 24" on the side in portrait mode. Since I picked up the 30",
I rarely use the 24. I'm strongly considering picking up another
30" (maybe the nice new Dell 3008 WFP since it supports DisplayPort)
and ditching the 24" and possibly the 20"
Why
Developers are multitaskers with IDEs, running test
applications, email, internal and public chat, and many other
applications running at the same time. You can switch between them,
of course, but being able to keep as many visible at the same time
can really help productivity. Additionally, having more code
visible on-screen, without having to hide other UI elements, is a
good thing. With the 30" display, I can't remember the last time I
maximized anything other than a video player.
Video Card
Unless you're trying to hit a Windows 7 7.9 WEI, or you game on
your PC, pretty much any modern card will do. If you run more than
two monitors or you have a couple 30" displays, you'll want to step
up the tier on cards to make sure they can push the pixels.
Otherwise, a mid to high level DirectX 10+ card will be fine.
What I Chose
That said, I wanted a single card that would support 3 displays,
and also support DirectX 11 so I can be a little future-proof. I
had written off ATI years back when they hosed me by releasing
buggy drivers and refusing to update them while they developed
newer cards. Based on performance specs and features of the new
crop of cards, I decided to give them another try.
I picked the Sapphire Toxic Radeon HD 5850. At $345, it's
not a steal, but it's a decent price. You can save around $25 if
you want and get the Vapor-X version and overclock it to the speed
of this card; they're essentially identical.
Why
While Windows 7 uses a fair bit of 3d GPU support, many of the
features of higher end cards are exclusively for gamer use. I
considered workstation cards, but the lower-end ones wouldn't cut
it for 30" displays, and the higher-end ones were just too
expensive. The ATI card has two DVI ports and one mini DisplayPort
port. Since I'm considering a second 30" display, I'll make sure
that one is a DisplayPort monitor like the Dell 3008 WFP.
Processor
I'm biased to Intel processors. I've always had good luck with
them, and they've proven to be the fastest on the high end, but not
necessarily the most bang for the buck in the mid-range. If
you like AMD processors, that's cool, substitute your
favorite.
What I Chose
I went with the Intel 6-core 980x extreme edition CPU. This will
be the first time I've ever purchased the top offering from a CPU
manufacturer. If you don't want to the unlocked multipliers and
other features of the extreme edition CPU, you can save $100 and
get the newly released i7 970. Stock clock on that is 3.2ghz
instead of the 3.3 of the extreme edition, but it looks like a
solid processor.
Why
I multi-task a lot. I like to have things like Zune doing some
downloading/encoding, maybe Premiere Pro doing a render, and even
some 3d stuff going on. I currently use multiple machines to make
this possible; being able to have serious background work (or apps
that can use all 12 virtual cores) running is a huge boon. The 980x
has 6 cores plus 6 hyperthreading virtual cores, running at 3.3ghz
for massive computing power.
Motherboard
The motherboard is often an afterthought once you've picked out
the type of processor you want. I left out the motherboard from the
list at the top. Unless you're planning on some real overclocking
or multiple GPU work, the motherboard you choose just needs to
support your selected combination of components.
What I Chose
For this build, I spent more time looking at motherboards than I
ever have before. The motherboard Scott and I both picked is the Gigabyte GA-X58A-UD9, on sale at NewEgg as
part of a combo deal when purchased with the Intel 980x CPU. At
retail, it's not worth the price, but at the combo deal price at
NewEgg, it was definitely worth picking up. We were going to go
with the UD7, but the combo deal sealed it.
Why
The selected motherboard had to support:
- Socket 1366 for the 980x
- Overclocking
- At least 12gigs of memory
- USB 3.0
- 6.0gbps SATA III
- Several PCI Express cards (I use a high-end sound card for
recording: the E-MU 1616; my current mobo has issues with irq
sharing with it)
- The usual USB and network headers
I've always been an Asus guy; my last 6 motherboards at
least have all come from them. This is a departure from my
usual brand and a venture into a well-respected brand's product.
Other contenders included the UD7 from Gigabyte, the high-end Asus
boards, and the top of the line EVGA board. In the end, this board
(at the bundle price) had everything I was looking for.
It remains to be seen if the water cooling on the chipset is
worth it, or if (as it looks) the nozzles are too close to the CPU
to be anything more than a pain in the butt.
Memory
Everything I've read says it's difficult to get 24GB of desktop
memory working reliably at overclocked speeds. I like a challenge,
but didn't want to deal with one with memory on this build. I've
also noticed that 12gb and 24gb kits (3x4gb and 6x4gb,
respectively) are currently hard to find in higher clock speeds and
better timings. There's a fast 2000mhz G.SKILL 24gb kit coming out,
but not in time for this build (and it probably runs a grand or
more). For those reasons, I decided to stick with 12gig total,
using 2gb modules and all 6 slots of the board.
What I Chose
I went back and forth for a while on speed and timings. I
finally decided to settle on two sets of Corasair XMS3 6GB kits running 1600mhz at
8-8-8-24 timings.
Why
There were faster kits available, but I felt this one gave me
the most bang for the buck and had a solid reputation - at least
until I replace it with the 24gb kit ;) 12GB doesn't seem like a
lot of memory, but I'll see how well it does. If I feel the memory
pressure early on, I'll at least have a solid 12GB of memory that I
can use in one of my custom server builds.
Primary Storage
In most systems, primary storage (typically spinning platters)
is the weakest link. It's noticeable too. Most operating system
start up time, most application start up time, and most data
loading time is all due to the speed of your drive. Back in the
day, we used to mess around with RAM Disks in DOS and Windows, as
drives back then were even slower. These days, we can choose to go
with SSD.
What I Chose
The Crucial RealSSD C300 256GB SATA III MLC Internal
Solid State Drive (SSD). I picked up mine locally, and it was
actually a few bucks cheaper. Still, this is expensive for 256GB of
storage.
Why
I've run into so many harddrive-related bottlenecks over the
past couple years, that I decided to bite the bullet and go with
SSD. I didn't want a small SSD, though; it had to be at least
200GB, preferably 250GB+. I wanted a drive larger enough to hold
the OS, apps and most of my profile. Sure, I'll likely move media
and other bits to a secondary drive, but that's ok. I just want my
apps to instantly install, instantly appear and run like
buttah.
There are faster SSDs out there, but the price jump is
significant. You're looking at $1000 or so to go with one of the
OCZ PCI drives, and the performance increase isn't proportional.
SSD tech is still new, so I decided to go with the best I could get
under $700.
Secondary Storage
I keep larger files and files that I don't often access
(downloaded installers, my media collection, same-PC data backups,
old projects, and more) on a secondary drive. Traditionally this
has been larger and slower than my primary drive.
What I Chose
The Seagate Barracuda 1TB 7200 RPM drive, retail
kit. This is a reasonably fast 1TB drive. Reviews on hard drivers
are uniformly terrible; everyone likes to do a review when they get
a DOA. Hopefully this one does well. If not, it's always good to
have a backup on something like Windows Home Server anyway.
Why
It had a good price on the shelf at MicroCenter (local store).
This was unapologetically an impulse buy.
Case
The case should be one of the later items you pick. In my case,
the motherboard selected required that one of a select number of
cases be used, as the board is larger than ATX. I also like a case
that looks good, is quiet (or can be made quiet), has room for
water cooling, and doesn't require scraping my knuckles to install
stuff.
What I Chose
I chose the Cooler Master HAF-X. This is one beast of a case
made to support both air and water cooling.
Why
At the top list, I left out the case as I think it's (within
parameters) a personal decision. I'm going to try and go a little
nuts on water cooling (my first time!). It's roomy enough for the
oversized Gigabyte board, is coated black inside (I was going to
spray paint any other case, so this saved serious time), has
excellent air cooling for drives and video card, has great cable
concealment and just looks good. Scott and I both picked up the
same case to hold the board: the Cooler Master HAF-X. There's plenty of room in
there for the motherboard, multiple drives, and the water cooling
radiators I'm considering. If you decide to air cool, it has TONS
of good fans and great airflow.
I usually keep my case up on my desk, behind my displays. When I
build my new home office (probably next year) I'll likely keep it
on the floor under the desk.
Summary
Here's the summary of the new bits I bought for this build. I
already own the locally bought stuff. The NewEgg items will be here
this week.
What's next?
I need to order the water cooling components, a good battery
backup to replace my aging one, and then assemble this thing.
That'll be my tech project for August after DevLink
2010.
Updates
I did a bench build using air cooling just to verify the pieces
work together. Raw video is below. A complete Windows 7
install from a USB stick, including my one dumb reboot
caused by leaving the stick in, took around 8
minutes.
After I completed the build, I had to
replace the power supply due to an over-stressed wire pulling
out.
Here's a current photo of the inside of the beast. More
information and photos in the links below.
Related Links