12 ms·
Slightly off-topic, but who here uses a HEDT (high-end desktop) or workstation computer for software development? Does it make a significant difference in comp
by lliamander 7y ago
Slightly off-topic, but who here uses a HEDT (high-end desktop) or workstation computer for software development? Does it make a significant difference in comparison with a standard business laptop?
- Skunkleton 7y agoI use a desktop, not sure I would call it high end (32 GiB, 6 cores, nvme). I do lots of large builds of things like linux kernels. I doubt any laptop would be able to keep up simply due to thermals.
- lliamander 7y agoYeah, what's considered high-end does shift, although that still sounds higher end than most laptops. I think a typical "high-end" desktop is one that has more cores, memory channels, and PCIe lanes than a typical "mainstream" desktop (whatever that happens to be at the time). Support for ECC memory is also sometimes a requirement. I use a 3 year-old laptop with 32GB of RAM, an SSD, and a dual-core i7 (U-series) processor. It's reasonably efficient. I think the amount of RAM and the IO speed of my SSD remove most of the hardware bottlenecks I face. However, I would like compile times to be faster, I do sometimes notice applications hanging, and IntelliJ (we use Java at work) seems limited on how many projects I can run efficiently in a single workspace. I'm just wondering whether a workstation-grade laptop (Dell Precision or Thinkpad P-series) would be a sufficient upgrade, or investing in a desktop would be worthwhile at some point.
- virtualwhys 7y ago> I'm just wondering whether a workstation-grade laptop (Dell Precision or Thinkpad P-series) would be a sufficient upgrade, or investing in a desktop would be worthwhile at some point. Yes, either 17" machine offers an 8-core CPU and plenty of thermal capacity (i.e. larger chassis than their 15" equivalents), along with more than enough memory (128GB), and in Dell's case, a boatload of HD slots (4, run in whatever RAID config you want). These are desktop replacements, heavy (as in 6.5+ lbs), with 240W power bricks , so you'll probably want them to stay on the desk for most of the time. I'm personally looking to replace my old Dell Precision with a 15" 5540, maxed out. For Scala work the extra cores help reduce build times, probably the same for Java.
- deminature 7y agoOn extremely large projects (15-20 minutes to compile from scratch or longer), the more compute power available, the more productive you can be. Cumulative wasted minutes from compilation over the course of a year can add up to a lot.
- dsalso 7y ago6 core Xeon, 64GB RAM, some builds take 4hrs....
- lliamander 7y agoHoly moly. What language, and roughly how many lines of code?
- simcop2387 7y agoI do, but mostly because there's a few projects where running multiple virtual machines with multiple cores and lots of ram is useful for them. Also because I run a VM for cad work for my 3d printer, on the same machine.
- lliamander 7y agoYeah, I sometimes will be running a dozen or so docker containers, although the CPU utilization on those tends not to be very high - RAM is the main bottleneck for me. However, I also don't typically leave those running. I just spin them up when I need to for testing. I'm not sure how fast my other applications would run if I left those up.
- valbaca 7y agoMy company provides a pretty standard laptop, but they rarely have more than 2 cores. In native app development, Android Studio and Xcode are severely bottlenecked by 2 cores. The difference between my laptop and my Mac Mini (6 cores) is astounding. The difference between a build taking 6x minutes and 1x minutes is more than just 1/6 because it goes from "Well, guess I'll check email/messenger/HN real quick." to taking a sip of coffee. It also gets real bad when your IDE is forced to fight with your browser, email client, etc. Then you're forced to do nothing, lest your casual actions further slow down your local build. Usually the "breaking point" is when builds take more than 5 minutes, but especially when they take more 30+ mins.
- lliamander 7y agoSlow builds can definitely break concentration. I'm on a dual core as well, although most new business laptops come with 4 cores. My build times aren't as long, because I'm working with Java-based microservices, so each service takes a minute or so to build (with tests) but even that delay can break concentration. Turning off tests helps, but then you don't always have the immediate feedback of the test results (and don't worry, I always run the tests before committing).
- arcticfox 7y agoA little off topic, but what does your microservice build with tests look like? Trying to figure out what I need to do if I want to try microservices correctly...
- pjmlp 7y agoI used to be happy with Java and .NET builds, until I got to deal with Android builds. Android is probably the only platform that in almost every conference has at least one talk related to how to improve build speed, thanks Gradle + Android Studio.
- tracker1 7y agoI worked on a codebase a few years ago that took over 44 minutes to compile... a change you would think should take 10 minutes took 3 days. RSS was still a big thing at the time, and did a LOT of reading while waiting.
- edude03 7y agoI do, and it makes a significant difference in most of my workloads. A lot of my work requires testing bleeding edge software, for example, applying a small patch to the latest version of kubernetes then running a small virtualized cluster locally to make sure it works. Even if not for that, I tend to cross compile a lot of software since all the engineers at my company use macs for software development but we deploy to linux servers, so often I end up building rust binaries for linux and it's fairly computationally intense. For an anecdote, on my work laptop (i9/32Gb/512SSD 2018 15" MBP) I can compile the dev environment from scratch in 40 minutes whereas it takes 4 hours on the company standard dual core/8gb/256gb 2015 13" macbook
- MuffinFlavored 7y agoReading the replies to this make me very grateful that I just run a couple of Docker containers for local Postgres/Redis along with some non-compiled node.js
- alfalfasprout 7y agoYeah, work on some pretty big codebases with an IDE. CLion, IntelliJ, and PyCharm are pretty resource intensive for instance.
- SkyPuncher 7y agoNot a great example. Web Dev. Going from a 2015 MBP to the new touchbar model, my cold build times were cut in half. Other than, saving 15 seconds once per day, I noticed nothing.
- imeron 7y agoTry going backwards. It’s easier to notice the speed difference the other way around :)
- jchw 7y agoI just upgraded from a 2700X to a 3900X. Maybe it’s not quite HEDT but its closer, and my god, it’s literally mind blowing. I measured a 47% wall clock improvement on a test compilation. If you compile lots of C++ you are in for some serious surprises. Especially so if you are doing things that cross-cut hundreds of C++ packages at once, it basically enables things that aren’t possible on, say, a mid range laptop. That said, if you are just running simple Go or Rust compilations, or small single-package C++ compilations, caching and a decent processor should be good enough, and you probably won’t benefit much from a lot of threads. (You may want it for your Webpack builds still ;) One tip: scale up your RAM, pay attention to clocks and latency relative to your processor (especially with AMD where it really matters.) 16 GB is easy to kill when you are running 24 instances of GCC and a VM or two.
- Macha 7y agoRust actually benefits a lot from more threads once you have a couple of dependencies. A personal project using amethyst/nalgebra dropped its compile time for a fresh release build from 20 minutes to 2 when I upgraded from a i5-4670k to a r9 3900x.
- jchw 7y agoThis is true; I’ve never worked on a huge Rust project, only fairly large C++ projects (at home, anyways.) Rust compilations always felt fast enough to not matter, similar to Go, although maybe not quite that fast. (With Go, it never felt to slow to say, build Kubernetes from scratch; it’s just fast.)
- tracker1 7y agoRegarding webpack builds... absolutely NVME, when I went from SSD to NVME it's the Node/webpack build times that I really noticed the performance differences. I would think the extra cpu would be more of an impact with Rust than even C++... I wouldn't know, running a 3600 as a place holder until the 3950X comes out. I couldn't handle the 4790K anymore, going from 32gb to 64gb and the couple extra cores made a huge difference for my docker/vm workflows. Can't wait for the 3950x. I'm sure the TR 3rd gen will be similarly impressive with the changes to IO.
- newman8r 7y agoI do, I really like it. Current uptime, ~90 days, got everything the way I like it with i3... I can have hundreds of tabs open in various browsers, I've got 9 workspaces with various projects and things in them and a 4k display. Actually my main rig is the last mac pro, the 2013 one - I just don't use apple's OS. I really like the rig and I expect to use it until at least 2023 (10 years of use).
- bgentry 7y agoI use an 8-core iMac Pro with 64GB RAM; it’s wonderful. When I bought it I was doing some embedded device work involving a Windows VM, as well as heavy web dev on a frontend JS app and a backend app with tons of Chrome tabs open. All these things crave memory, and my 16GB MacBook Pro was swapping itself to death. This was pre-32GB MacBook Pros, so I bit the bullet and couldn’t be happier with the setup. It’s dead silent basically no matter what I do and doesn’t get thermally throttled during heavy workloads. Having the extra RAM also makes a huge difference. Now that I’m doing more regular web dev on an Elixir & React app, I benefit from the 16x parallel compilation & test suite, as well as the ability to keep basically anything open without resource issues.
- Kimitri 7y agoI have a similarly specced iMac Pro and I use it for very similar tasks. Could not be happier with the machine. I think the RAM + the very speedy storage make this a great choice for the kind of dev work I do.
- maaaats 7y agoI got a Lenovo laptop with roughly the same specs, though.
- bgentry 7y agoYour Lenovo laptop has an 8 core 3.2GHz Xeon with 4.2GHz Turbo Boost, 19MB Cache, 64GB DDR4, silent cooling even under heavy load (which it can sustain), and an SSD that does 1700MB/s with full disk encryption?
- maaaats 7y agoNot at my laptop until monday so not sure about all details, but almost that, yes. It's a top specced P1. Xeon but 6 cores I think. 64gb ddr4. 1500mb/s read I think it was on the SSD. Not silent, exactly though, hehe.
- 7y ago
- baroffoos 7y agoI could do with one since vscode + sql server in docker brings my new high end laptop to a halt every now and then until I restart them
- kbumsik 7y agoI don't have an HEDT but an outdated Haswell i5 laptop (not an Ultra Low Voltage model at least, so it's quite fast). Last year I spotted a bug in Firefox and I though it was time to put a line in the contribution section in my resume. The contribution experience was a nightmare because a full build of Firefox took 3 hrs and running the entire testing framework took 4 hrs, though it turned out that I needed to run only a part of the testing framework. Changing a single line and building it again still took more than 30 minutes. That was the first moment that I wanted a HEDT in my life. It feels like devs who work with big C++ projects would want a bigger workstation because of the significant build time.
- _bxg1 7y agoWoof. I wasn't aware compilation times got that long for people who aren't building a whole OS.
- kbumsik 7y agoI wouldn't try contributing if I were aware of it too lol. Imagine that I did it for Chromium. I was told that it takes about 20GB to build Chromium.
- oldmanhorton 7y agoIt's usually more, actually. We have seen 100+ GB build directories when building the "all" target and a non-GOMA build easily takes multiple hours on a desktop i7
- skunkworker 7y agoTry building Chromium from source. Anandtech uses it as a multithreaded benchmark. The top CPUS can average just under an hour compile time. https://www.anandtech.com/bench/CPU-2019/2224 https://www.anandtech.com/bench/CPU-2019/2224
- tdsamardzhiev 7y agoWell I work in games and building our thing without distributed compilation is inconceivable.
- skrying 7y agoRecently picked up a 9900X and now my company's javascript app builds almost twice as fast ;)
- GlenTheMachine 7y agoI do, although not the kind of software development most people do. I’m a robotics controls engineer. The code I write is pretty short compared to most of you, and it doesn’t take long to compile. But to test it I have to run very complicated dynamic simulations. These never run in realtime. It’s not uncommon for a thirty-second simulation to take five, ten, fifteen minutes to run; sometimes I have to run many iterations of the sam sim to collect valid statistics. So both CPU speed and number of cores translates directly to time spent waiting for the sim run to finish. I have a 2013 trashcan Mac Pro with 12 cores. It’s still a good machine.
- vmlinuz 7y agoNot a desktop, but... My employer typically gives people a MacBook Pro, but when a colleague left a couple of months ago I snarfed his laptop - a ThinkPad with 24GB RAM and an i7. I put Slackware on it (for I am Old Skool) and it's really handling many many tabs, plus our many-docker local dev environment far better than everyone else's Mac. Of course, it's far bigger and heavier than the Mac, but also of course (for I am Old Skool) I'm using it with a decent keyboard, a decent-sized monitor, a decent mouse, and a USB-C charger. It does mean I can't go to meetings, but that's ok with me...
- loeg 7y agoI use a first-gen AMD Threadripper 1950x (16 cores x 2 HT, or 32 logical cores), if that counts as HEDT. It's absolutely faster than any business laptop for doing builds of medium sized C and C++ projects. (But I think a non-HEDT desktop would also outperform a typical laptop in this use case -- thermal throttling is a real problem for laptops.)
- aseipp 7y agoYes. I work on a Linux distro, and the amount of time my 1st gen 32 core Threadripper has saved me is truly mind blowing. It made it possible to do changes I wouldn't have dreamed of. As an example, I worked a bunch on our PostgreSQL infrastructure, but we support 5 years of versions. So you have to CI/integrate your changes and test them across all 5 versions, every time you test. My machine could do this on the order of 2-3 minutes -- recompiling everything from scratch every time, and running all integration tests on all versions. There's no CI system or cost-effective cloud hardware that would have given me turnaround like that. In the end I was doing hundreds of builds over the course of just a few days. In contrast, at $WORK we have a C codebase that takes < 1 minute to compile on my 4 core work laptop. YMMV.
- kbumsik 7y agoHow's kernel support and VM support such as QEMU lately? I'm thinking to buy i7 for embedded OS dev but that sounds very tempting. I heard AMD CPUs had some breaking issues last year.
- reilly3000 7y agoI haven't had any issues with my 1st gen Threadripper for about a year now. I'm running Unraid with QEMU from that box and couldn't be happier with performance and reliability whilst running 2-5 VMs at once along with 20+ Docker containers. No issues with Windows 10 and *nix VMs; I haven't been brave enough to attempt a hackintosh yet though. When it was bad, it was so bad. I never wanted to know as much as I do now about IOMMU groups and PCIe lanes.
- vetinari 7y agoThere was breaking issue, but it didn't manifest automatically. It happened, when the 2nd gen TR arrived. It used the same mainboards, so all the manufacturers issued BIOS updates. Unfortunately, these updates claimed to support SEV (Secure Encrypted Virtualization). Linux of course tried to initialize it at boot/module load time and the entire thing went hanging, because TR CPUs do not support SEV, only EPYCs do. So there were the following fixes: 1) downgrade BIOS back to pre-TR2 version, 2) blacklist the ccp module; which would make kvm_amd non-functional, 3) wait for a fix in Linux kernel, which initializes SEV with a timeout. So it wasn't that tragic issue, if you had first gen TR.
- scarface74 7y agoThe standard business laptop msxes out with 16GB, which is good enough if you don’t run all the secondary stuff like databases locally. But 32GB would be great.
- ericd 7y agoTo add to the chorus, Threadripper has been incredible for deep learning related workloads, partly for the high core count for prepping batches, but also because it can support multiple GPUs and gobs of RAM. If you have a lot of big compile jobs, it shines there too.
- fyfy18 7y agoI bought a used Dell workstation with a 8c16t Xeon E5-2670 and 32GB ECC DDR3 RAM a few years ago. It's a bit outdated now, but it's still faster than the most laptops (for multi core workloads). At the time I had a MacBook Air, so this completely blew it out the water. I remember one time while trying to debug an issue I had 10 docker instances of our CI running (Rails + Cucumber + Firefox) and there was absolutely no performance impact to the desktop experience. Last year I bought a T470s with 20GB DDR4 and an i7 (U series) as I was mostly working away from home. It's good enough for most of the work I do, but it can be a bit slow at times. The processor just isn't as fast and the integrated graphics struggle with a 4K desktop (I think that's mainly Linux/GNOME being unoptimised though). I haven't noticed it throttling, but my workload usually isn't that CPU intensive. If you mainly work from home I'd definately suggest building a desktop machine for your needs.
- bluedino 7y agoYou could get a T480 with the quad-core CPU, or a P5x with a 4, 6, or 8 core CPU (like the 15" MBP) and 64GB :)
- jesalg 7y agoYes. I have a company issued 2018 MBP 2.6 GHz i7 & 16GB RAM but I prefer to do most of the dev work on my HEDT running Linux (Ubuntu 16.04), 4.0 GHz i7 & 32GB RAM. It's way better at running Docker instances, a bunch of electron apps, and tons of Chrome tabs simultaneously without a hitch.
- tlobes 7y agoMy HEDT at home serves as my VR development machine and doubles as a gaming rig. I generally save basic research, design, and sandboxed coding for my MacBook Pro at a coffee shop. If I had a similar performing laptop that could replace my desktop in terms of GPU performance and compatibility with the devices I use, my HEDT would start collecting dust.
- timwaagh 7y agoI did once. It was wonderful not having to take the thing home.
- thrower123 7y agoI do all my work on desktop workstations; I have a little burner laptop I lug around to meetings, but all it really does is browsing and outlook. Having a real keyboard, mouse, and four 27" monitors is something I will never leave behind at this point. All that screen real estate to spread out over helps enormously. I can have a browser with our application pulled up, Visual Studio, another browser with doc, Webstorm with the front-end code, SSMS connected to the database, an email client, Notepad++ with logfiles, all the different chat clients I have to use, and more if I really need to, all on screen and available at the same time. I don't have to alt-tab around, I just look and it's there.
- stephenr 7y agoIt probably depends what sort of software. I migrated from a MBP to a 2018 Mac mini with 64GB, and the ability to run say 10 VMs at once, without having to limit them to half a GB RAM each is amazing. I'm not in the market when this thing (Mac Pro) is actually released but in a year or to, I may well be migrating to the latest of the Pro line - I don't care about GPU (much - it just needs to drive some displays) but I do care about CPU speed + core count, Memory and fast storage.
- nottorp 7y agoNot everyone does web development and can work with just an editor on their dev machine...
- Cthulhu_ 7y agoDoes wanting to count? I don't have a need right now, but some years ago I was doing iOS development; compile times started to get to a point where a more powerful system would've come in handy. Mind you, my workflow could probably do with adjusting as well, I tended to work like I do with webapps and just continually rebuild/restart and review my changes on the device itself (or an emulator). Part of me also wishes we had a big setup with multiple docker images running in parallel but ATM we have the luxury of working on 'just' a website (react, some lambdas, back-end are all third party services, we connect to a staging environment during development) so it's not too bad. But I'd still like a permanent machine, there's something about (and this is me idealizing) having a fixed workspace you don't have to pack up every day. I mean sure disconnecting a laptop and yeeting it into a backpack isn't that much effort but it's the little things.
- rehemiau 7y agoNot a HEDT here, just a regular desktop, but it is significantly more responsive than a business laptop. Also much cheaper than a laptop comparable in performance. Plus it's upgradeable so more future-proof. I still have an old laptop that I use to ssh into my workstation occasionally.
- NCG_Mike 7y agoHP Z800 with 96GB of RAM, 2TB of RAID 0 rust and a 1TB SSD. C++ dev using Fedora 29.
- nvarsj 7y agoOh yes, it makes a _huge_ difference. Most modern laptops use constrained, low power CPUs and GPUs. They are dog slow. Even my 5 year old desktop is substantially faster (like, builds take half the time kind of difference) compared to my <1 year old max spec'd thinkpad. Possibly the only laptops that could compare to desktops are gaming laptops, and I know developers who buy things like the Razer gaming laptop to try and get desktop-like performance.
- 8draco8 7y agoFor me the problem with gaming laptops for work is their GPUs. I honestly don't need anything beyond build in Intel GPUs but I would love to have powerful CPU + a lot of RAM. Highend GPUs are driving prices of laptops very high so essentially I'm paying a lot for hardware that I would never use. That's why I prefer desktops, there is no problem with having Threadripper and 128GB of RAM in case with some basic $30 used GPU.
- nvarsj 7y agoI think good GPUs are necessary to support external monitors. My thinkpad really struggles to power two external normal DPI monitors. If I had high DPI I don't think it would even be possible. I suspect the gaming laptops with their full powered GPUs, usually Nvidia or AMD, would have no problem powering several high DPI external monitors.
- 8draco8 7y agoThat's true but still you don't need Titan to power two 4k monitors, probably good old 750Ti or even older GPU will be enough. For me it's even easier because my sweet spot is one 1440p display (that's where I work most efficiently) so anything will be good enough for me.
- ChrisRR 7y agoDepends what you're doing. I'm a low-level developer, my build times are less than a minute, so cashing out on a huge beefy PC would barely make a difference to my workflow.
- emidln 7y agoI use a dual 10C Xeon (40 threads) with 128gb of RAM as my work desktop. I do builds development for C++, Java, SystemVerilog, and Python codebases. Jetbrains IDE products like IntelliJ, PyCharm, and CLion can use extra cores and ram for indexing our large codebases. The high core count is also useful when compiling C++ from scratch (common for me because I'm often doing weird things that defeat the bazel caches) and running large test suites or medium simulations. The latest MacBook pros (8 core, 16 threads, 32gb ram, 2tb flash disk) are finally fast enough with enough ram to both run CLion with clangd indexing and do C++ compilation/testing. Full builds are still not advisable (not that a full build is particularly useful since our prod is only Linux and we have CI/desktops to avoid cross-compilation).