I am no stranger to do-it-yourself system builds. Been literally building for 25 years. This time is different.
I recently left my job at (insert big CPU manufacturer) here to start my own business. I am using an old gaming computer for development work and it works really well, well somewhat. The current system is an i4790k, Samsung SSD, 16 GB RAM. Nothing too fancy.
Here is my use case:
I write code in Scala and C++.
I periodically clone, compile, and regress large source code repos (e.g., GCC or Linux)
I use either IntelliJ (application that runs on JVM) or gvim for development work, also Chrome (many tabs)
No gaming, no multimedia (in fact, I disable the sound card on my current system)
I occasionally run VMs
OS is Centos 7 (but thinking of changing to Ubuntu)
Here are my wants:
Want this to CRUSH GCC compiler benchmarks
Rock stable GPU and drivers for running X.org. 2580x1080 is all I need. (I’ve tried 4K, but doesn’t bring me productivity benefits)
Three different ties of filesystems, I don’t need an obscene amount of disk space, dealing with text files, no audio or video!:
for OS, with daily snapshots
for managed data, with hourly (or better) snapshots
for unmanaged or scratch data, no snapshots needed, only performance here
a bulk data drive (raid 1 HDD) to backup snapshots (is this possible?)
Open to overclocking, but not at the expense of stability.
Here are my questions:
Do I really (I mean really) need ECC
What about buying a handful of smaller PC and set them up as a cluster?
What file systems should I use? Any pointers on how to configure?
Anyone up to the challenge?
Let’s say $3,500 for the budget (no monitor). But, can go higher if there’s a good reason, just not to burn money.
So no you don’t really, really need ECC RAM, but if this is a machine that will run 24/7 and your living will rely upon it, then you really should consider it. I think AMD provides more flexibility here, ECC on Intel really means Xeon CPU’s.
I would consider building a kick arse workstation and having a well specced laptop. That way I can leave stuff compiling on the workstation whilst working on something else on the laptop. Two machines would also provide a fail-safe and a laptop with a modern i7 is still a decent performing machine if you do need to compile some code on it.
Do you intend to do any gaming or anything gpu intensive?
If your only gpu requirement is that it stably displays your desktop and not much else, then you could use intel integrated graphics.
And if that is possible, then why not go for the i7 8700K? It would be 2 extra cores and 4 extra threads, plus it is clocked a fair bit higher.
Or you could approach this problem from a totally different angle. Instead of having 1 machine do all this crazy bull crap, why not simplify the problem and have two machines?
Have a fast and lean enthusiast machine for day to day stuff, and then have a compiler work horse machine do all the heavy lifting.
You could get a nice low power super high core count machine with multiple processors in like a 1u form factor. Get a nice home network going and then you could just send your project over to that computer, compile it in like half a second, and then have it sent back to you.
This is also nice because now any computer in your house can be used to develop. You could develop on a laptop in bed, a tablet from the couch, the computer at your desk, it doesn’t matter. Not to mention that if there is an issue with your main computer, it wouldn’t adversely affect your work horse machine.
for the second point I was thinking something simlar to that where he can code on a laptop and use syncthing or something to sync the files over and have it compiled
I feel my idea would be best if they were on a budget but they dont seem like it and its nice they are just using text files and nothing major which saves alot of time moving it
Everyone speaks highly of Threadripper. Go with that.
Honestly, I’m surprised the rig you have now isn’t sufficient. Looking at deals around, you can get a Threadripper, 960 Pro, TBs of storage drives, 32GB of RAM, and a decent graphics card and come under budget.
Why CentOS as a workstation/dev OS? Bleh, man. Go Ubuntu or Fedora.
It’d be a gamble though. It includes 300W P/S, so should be able to power most CPUs, but thermals remain a mystery… It would suck if CPUs wouldn’t hit turbo speeds.
Threadripper is an option, but it comes across as a “value part” vs. I9. I don’t need to save $500 or so. And the ~10% IPC boost, probably worth it for my use cases.
The storage is probably sufficient, but BRTFS and snapshotting is proving to be a real PITA. I probably don’t know how to configure properly. My system “locks up” with high IO load.
And, yeah. Ubuntu or Fedora. I agree with your Bleh, but learned the hard way
I the past I have setup every PC on my local network with the icecream distc (icecc) daemon for distributed C compiling of large code bases giving me a total of 18 cores to compile with, for the time (5 years ago) was crazy fast. If you’re on a budget and have spare machines around (even the wife’s laptop ) it is a sound solution.
I know most people will say you don’t need ECC on a workstation but at a 20 core machine with 32 GB RAM on a machine that will work on something as important as GCC, I think it is worth it even if it avoids one error a month.
Its not that clock speed doesn’t matter. Its just that core count is more important.
More slower cores > fewer faster cores.
A 20 core machine running at a lower clock speed will outperform a 16 core processor running at a faster clock speed.
However the core count has to be a good bit higher in order to make up the difference. So for instance if you had a 20 core machines running at 2ghz and a 18 core machine running at 4ghz, well then the 18 core machine will win.