Ask HN: Should I invest in a desktop PC in 2017?
I want to purchase a new computer to own a faster machine.
Currently I'm mostly using the thinkpad on my desk with two external monitors.
On the other hand, the battery life of it is pretty good and I like that it's small and lightweight.
I'm not a gaming person, so I don't need a discrete graphics card. I'm mostly using either Linux or FreeBSD with single-boot, but for Photoshop and school-work I sometimes need to work with windows. If I had two graphics cards I could forward one to QEMU and get near native response times on VMs.
Last but not least, one part of me wants to experience building a desktop.
Calculating the expenses, building a desktop would cost me arround 550 euros. But in the same price range I could buy a low-end 7th gen kaby lake laptop.
I know that desktop processors are much better than their laptop counterparts.
This question has been eating me away for the last 6 months. On one hand, the performance of my current machine is bearable, on the other hand I think I'm missing out on the speed of newer processors and limiting myself.
What would you do,
is desktop still relevant for dev-work in 2017?
Will I experience any difference in day to day use (heavy browsing, emacs, photoshop, occasionally an IDE) if I buy a 7th gen laptop instead of a 7th gen desktop?
70 comments
[ 4.7 ms ] story [ 53.1 ms ] threadIf you have something that can take advantage of those however it can completely change your workflow.
Building a PC is fun and you will be able to do piece-meal upgrades as you want instead of having to replace an entire laptop because it becomes outdated. Financially it might make sense since you have one time expenses like case, power supply, peripherals and then things you can upgrade at will like motherboard, cpu, ram, and drives. If you future-proof the motherboard purchase (buying best or high-end now) then future CPU updates would just require a new CPU.
The downside of building a PC is that new stuff is coming out every year without much actual progress regarding speed. And mobility is a downside if you need something in class (you mentioned you were in school) or to go somewhere to work on a project collaboratively or if you move a lot.
If you can, keep the laptop and build a PC. Then you can connect to more compute power if you need it, assuming you setup a way to connect to it from the internet.
As for remote connection, I can setup a way to connect to it from the internet as I manage my own VPN on a cheap server.
I definitely want to build a PC and my laptop is going nowhere.
Unless the CPU socket changes.
It is fun to look at the new tech coming out and day-dream of pimp-my-pc scenarios. I still think daily work doesn't improve much with CPU/mobo changes for most developers though. Especially if it is web related development since you will likely be running on virtualized servers anyhow.
Another potential factor - If you play games or develop 3d applications, high end GPUs are much more affordable in desktop form factors than in laptop ones and generally have more horsepower than their laptop equivalents. If you do a lot of video encoding for live streaming or media creation you may also benefit from this (seriously a GTX 1080 can encode 1080p HEVC at 300 FPS).
The cost is also generally lower for comparable hardware if you do a DIY desktop than a laptop.
While this might not be relevant to OP, it may be relevant to other people in a similar situation.
Of course, a big graphics card can also be used for graphics work, including video encoding, not just video games.
https://en.wikipedia.org/wiki/General-purpose_computing_on_g...
If you're interested in any of these and don't need the mobility for another reason, a desktop may be a very good consideration indeed.
That said, I'm currently working on the behavioral cloning project (teach a virtual car to drive using what we've learned so far), and given the amount of data we'll gather (10s of thousands of frames we have to process) to train our models - I tend to wonder if I will need to upgrade.
Fortunately, that won't be too difficult for me - I have both a 960 and 970 waiting in the wings; they were cards originally destined for a mini-itx gaming machine build that I've never gotten around to (hmm - maybe I should just build it for my next workstation instead).
Also - 960s and 970s are dropping in price like a rock, since the hardcore gamers are moving to the 10xx line; while they may not have as many cores or as much speed, they are still very capable cards for ML purposes.
I've also been considering getting a multi-pcie slot server motherboard (maybe with dual xeons or such - these mobo combos are actually pretty cheap on ebay), and dropping in one of those cards, then later adding on more GPU cards - strictly for an ML box...
Examples:
Xeon E5-1660 + 16GB RAM = $359 (add your own SSD)
http://www.ebay.com/itm/351956704259
i7-6700 + 16GB DDR4 + 4TB HDD + Radeon R5 340X = $650
http://www.ebay.com/itm/172487064618
Xeon E5-2690 + 32GB RAM + 512GB SSD = $996
http://www.ebay.com/itm/302054600901
These are just examples. There are tons of options. You can even build your own system.
If your existing laptop is still usable, you'd at least have a laptop even if you went for the desktop PC.
For normal use the experience isn't much different, but a desktop is nicer for tinkering and somewhat better upgradeable (RAM, large disks, adding a GPU if it becomes necessary), and if you do calculation-intensive things most laptops run into their thermal limits pretty quickly, a desktop can maintain its top speed.
As for CPU intensive task, I do video conversion from HEVC to x264 to watch movies on my TV via chromecast. I suspect that would happen really fast.
Like you said, I could tinker more, install couple of disk drives and run multiple OS's without hitting the MBR limit.
If you're running a full-blown IDE or a lot of tests, it's a significant work improvement to have a desktop (even comparing a high end MBP vs iMac).
Personally, I purchased an NUC with i3 that is only marginally slower than a 2013 Dell XPS 13 with core i7 (noticable only in compile times of software). I used the SSD from the Dell laptop via an adapter, and run Linux on it.
At 550 euro there aren't a lot of great laptops as far as I know. It's basically where the 15 inch full HD segment starts. I'd look into refurbished laptops (perhaps second hand) in that price range. Preferably get something with warranty (i.e. lenovo thinkpad, or buisness dell stuff, probably any buisness line).
Buy the fastest non-extreme consumer intel processor, right now thats 6700k, add at least 16gb of ram, 1 mid-size ssd, 2x 4tb drives in raid.
If you want to do any kind of GPU work add the fastest or second fastest consumer nvidia card, like the 1080 or 1070.
If you want to game get a second ssd and install windows on it. It goes without saying one should install some flavor of linux on the first ssd.
This is a sick development machine and represents the sweet spot in price/performance, saving money on your axe is a false economy.
You will also have the ability to overclock in case you come across a task that needs it.
What I typically do is buying a used company workstation from eBay (they are often sold by the tens). This gets you a nice robust 4/8 core Xeon machine with a lot of CPU cache and 16 or 32 GB memory (somtimes ECC) for ~300-400 Euro. Add an SSD you are done.
They typically come with a Windows Pro license as well if you need that.
Edit: since the hardware is typically 2-3 years old and certified for Red Hat Enterprise Linux, everything typically works out of the box on Linux or FreeBSD.
7700K. The same clocked higher.
Whether a gpu that expensive is worth it highly depends on what is meant with GPU work. For non-core-gamers, non gpu-accelerated-AI-guys, something like a RX 470 is plenty.
> the fastest or second fastest consumer nvidia card
> represents the sweet spot in price/performance, saving money on your axe is a false economy.
Care to explain your reasoning? Going with high-end components seems to be the opposite of the sweet spot. A $200 i5-7600 and $250 GTX 1060 are going to be indistinguishable in non-benchmark settings for most workloads when compared to a $700 GTX 1080 and $350 i7-7700k. Or even a $100 AMD A10-7860K and a $200 RX480.
I have a hard time believing that reaction times to differences of a few milliseconds or one extra frame being painted actually add up to matter. If they do, why not go with the extreme edition processors and triple SLI 1080s?
There are a number of tasks we do that are compute bottlenecked, how about compressing an archive, or compiling, or transcoding?
Even things like apt-get install is faster with a faster processor, and vim plugins can be ridiculous with their lag. It all adds up to hours and days and eventually weeks of your life over time.
I don't think the tradeoff of saving $100 or $200 on a chip that will last three years and will be worth more on resale is worth it.
I built my desktop box three years ago and coupled it with a 449 50" 4k monitor, and am still on a four or five year old laptop.
I see now that the 7700k is 23% faster than the 4770k I built my box with. 23% improvement in bzip2 time is worth it to me.
It's great bang for the buck,
Why not buy the biggest disk that fits in the space your case and sata cables will support?
All that I am proposing is a maxed out micro-atx case -- it only costs about ~1200
NVMe
if you need a desktop, these are tempting https://www.amazon.com/Intel-NUC-Kit-NUC6i7KYK-Mini/dp/B01DJ...
Surely it goes without saying that one should install whatever OS they want to on the first SSD? Why is Linux mandatory?
Buying used like others have suggested is a great idea too, especially since Moore's law is completely and utterly dead. CPUs have seen single digit percentage improvement YoY for a while a now.
Best case scenario: Ryzen matches or beats Intel at a lower price point. Ryzen processors are cheap and Intel has to come down in price to compete.
Worst case scenario: Ryzen flops completely and Intel's prices are unaffected.
The truth is likely somewhere in the middle, but either way, it's worth waiting at least until then to find out.
Hardware: Asrock EP2C602-4L-D16, 2x Intel Xeon E5-2670, 8x 8GB Hynix PC3-10600R DDR3 ECC, 2x Noctua NH-U12DX i4, Corsair RM850i, Phanteks Enthoo Pro
Because I bought the CPUs and the RAM second hand, they only cost me 390 euros. Even when buying all the other stuff brand new, the total was still less than a 1000 euros. To be fair that's without an SSD and Graphics card, because I kept those from my previous set-up. With 32 logical cores it's perfect for compiling, which is what I use it for. If you're interested, you might want to have a look at this techspot article and see how a similar build compares to recent i7's: http://www.techspot.com/review/1155-affordable-dual-xeon-pc/
- easy & cheap RAM upgrades
- ability to swap & add/remove harddrives. Running multiple OSes, you can more easily share common data, and you can pull out your main hdd allowing you to experiment safely.
- ability to upgrade the graphics card later if you want to.
If you are constrained by your budget, getting a desktop allows you to upgrade over time more easily. It also allows you to use different and more hardware.
Personally my 1st priority is having a good laptop, but I also have two desktop workstations and I prefer using them over the laptop. But if you use an external monitor, keyboard and mouse you are already getting most of the benefit of a desktop.
So I would save up until you have more like 850-950 euros or more.
Also, if you build a PC, eventually you may be sorry that you can't even _try_ any PC game or virtual reality headset or anything since you don't have a graphics card. I guess you could put off buying the graphics card until later if you really want to. But you may want to consider that when you select your motherboard.
Personally I would like to have one (or maybe two) M.2 (NVMe) slots for that type of SSD which can be 2, 5, or even 10 times as fast as the regular SATA SSD since it uses PCI Express and bypasses the SATA overhead. I believe they sort of look like RAM sticks/slots but are called M.2 and have flash on them. So look for a motherboard with that. Also I would like to have 2-3 2TB HDDs in RAID for extra storage. And a nice monitor. You could spend half of your budget on a nice monitor..
If you want to experiment with deep learning or something, you will want a newer Nvidia card because things like Tensorflow and Keras don't (yet) work with AMD graphics as far as I know. And if you get a nice graphics card, wouldn't you want to at least try out GTA 5 or whatever new game a few times? You can dual boot to Linux or use Virtual Box.
Anyway I say yes but you should save up more so you can get make a nicer desktop.
Maybe you can go here https://pcpartpicker.com/ and make a careful plan and then when you are sure buy a decent chassis. When you are getting close to having enough saved then buy a motherboard that will work with all of the other components you plan. Then you can buy a CPU. I mean if you don't want to wait until you have everything saved up. But I would just want to buy nice stuff so don't try to fit it into a tiny budget.
For comparison, my 2015 Macbook Pro i5 runs the same compile task in around 50 seconds. So there is definitely still benefits to having a powerful desktop around, and in my experience developing is more pleasant with quick turnaround times. The incremental compile times dropped accordingly, and having a sub-second vs 4 second delay between a change and seeing the result does impact your workflow.
For gaming, the new CPU did absolutely nothing, except smoothing out the minimum FPS a bit. Pour all your money into the GPU if that's your interest.
If you want the experience of building a PC... well, just know there really isn't much to it. Maybe you'd enjoy playing with a Beaglebone and capes or, similarly, an Arduino and shields. You can get all sorts of fun ones. I got an CAN bus cape I can plug into the OBD II port in my car and talk to it, for example.
Also, the personal pleasure of looking at your desktop and saying "I built this" is nice. As others mentioned, there are some one time purchases like case, power supply, etc. Otherwise, you can piecemeal upgrade. I've been doing that for 10 years now. The case is the same black aluminum, just as shiny, but the innards have changed over time.
Remember, the fun can be lost in striving always for "the best". Strive instead for knowledge gained and personal goals. Good luck!
Since you mentioned school work, I'm guessing you might be a full time (university?) student? Leaving work at work might be less exciting for you. Still, a desktop can help you enjoy college more. There have been some recent-ish studies showing how you retain info better when taking notes by hand. Also, campuses are lovely places best experienced out from behind the glow of a screen. Finally, walking around without a weight strapped to your back is nice.
However, in 2015 I wanted to get back into gaming, which I'd basically stopped engaging in all throughout college. I decided to build a gaming PC. I ended up with a 6700k and two 980 Ti cards in SLI. It was the first time I'd ever had such a fast gaming PC, and being able to max out everything at 1440p and still get 70+ FPS, even in games like The Witcher 3, was nothing short of a revelation to me.
That machine can still max everything out at 1440p today. So, to me, it was totally worth the cost and effort of assembling.
I use a combination of a home NAS and Syncthing, both of which play nicely with the Windows/macOS/Debian systems I have deployed.
I'd like to know if there's an easy solution for this as well. I have a laptop and a desktop that I snagged at a university auction [1], both with Ubuntu. I keep a portion of my work in Dropbox, but I'd really like to build a "local network dropbox equivalent" for large directories. I don't have the knowledge to do so.
[1]: http://www.publicsurplus.com/
it's like rsync, but two-way.
https://owncloud.org/
What? I'm just thinking on buying _another_ 4K display to fit all the windows nicely. Also, my 1 year-old box has 5x more CPU cores than a top-the-line laptop. And 4x more memory than a top-of-the-line MBP.
And I'm sitting 10 hrs a day at least, so I need proper posture, chair, split mechanical keyboard, whatever.