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.

Why Xeon?

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.

cores and cache. nothing else matters. (gimme a bit and i’ll write up a more detailed suggestion)

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.

ninja takes about 8min. I worked on machines with 4min, but I am pretty sure I can lower that with some tricks.

Compiling with LTO should be a breeze as well. With 64 gigabytes of RAM, I’m not expecting much swapping to be taking place.

Hardware

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.

Workstation

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.

First Results

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.