Building a Workstation
January 2017 marks the sixth birthday of my desktop computer. When I purchased my trusty Intel Core i5-2500K, I would've never guessed that I'd use it for that long. However, rather than jumping to the recently released Kaby Lake CPUs, I'm building my new workstation around two Intel Xeon E5-2670s.
There's several reasons I went with a dual Xeon setup rather than a flagship i5 or i7. The first reason is that I'm not building a gaming rig but a workstation. My main workload is compiling C++ code, which benefits from two things: cores and cache, as eloquently stated by Chandler Carruth on Twitter.
@echristo @whitequark cores and cache. nothing else matters. (gimme a bit and i'll write up a more detailed suggestion)— Chandler Carruth (@chandlerc1024) August 16, 2016
Each E5-2670 has 8 cores (16 threads) and 20 MB of L2/L3 cache. But even for regular workloads, the Xeon setup can easily hold its own against a flagship i7 machine.
The second, and very compelling reason is that these CPU are dirt cheap on the second hand market. As data centers started decommissioning huge amount of servers with these CPU's in them, prices plummeted. Once priced as $1500 MSRP, they are now available for as little as $100 on sites like Ebay.
Finally, what really convinced me was seeing other people doing the same thing and booking great results. Compiling LLVM takes about 40 on my desktop and is reduced to less than 10 on a comparable machine.
@JDevlieghere @chandlerc1024 ninja takes about 8min. I worked on machines with 4min, but I am pretty sure I can lower that with some tricks.— Piotr Padlewski (@PiotrPadlewski) December 11, 2016
Compiling with LTO should be a breeze as well. With 64 gigabytes of RAM, I'm not expecting much swapping to be taking place.
|Mother Board||Asrock EP2C602-4L-D16|
|CPU||2x Intel Xeon E5-2670 (8 cores, 16 threads)|
|Cooling||2x Noctua NH-U12DX i4|
|Memory||64GB Hynix PC3-10600R DDR3 ECC (8x 8GB)|
|Graphics||EVGA GeForce GTX 1060|
|Storage||Crucial M4 128GB SSD|
|Power Supply||Corsair RM850i|
|Case||Phanteks Enthoo Pro|
By going with used components for the CPU and memory, I was able to build the whole thing[^1] for just over €1000. I could've saved a little on the motherboard but that would prevent me from upgrading to more memory in the future.
The CPU and memory come with warranty, but even if they would break after a year it should be fairly cheap to replace them.
Because most of my work takes place in the terminal I don't require much graphic power. However, unsurprisingly the onboard graphics are really limited and even Ubuntu's Unity feels a bit laggy, so I have a GTX 1060 on the way, which is still missing from the picture above.
Future upgrades might include a larger and faster SSD and maybe a simple USB 3 or USB C PCI card. None of those are really limiting right now, but they'd be nice to have.
Using LLVM 4.0 to compile itself in release mode with clang and compiler-rt takes about 12 minutes with this setup, as compared to 40+ on my macbook. Building GCC 6.3 took 18 minutes. For more benchmarks and comparisons I'd suggest reading the Techspot article.