Author Topic: PC for software development - recommendations please!  (Read 6432 times)

0 Members and 1 Guest are viewing this topic.

Offline leo938Topic starter

  • Contributor
  • Posts: 21
  • Country: ie
PC for software development - recommendations please!
« on: April 30, 2023, 03:09:34 pm »
Hello all,

I'm doing quite a bit of software development (C/C++ stuff with Makefiles & Yocto builds) & it takes about 14 hrs currently for a fresh build on my Dell XPS. Lack of threads is the main issue. I'd like to get a box with at least 6 cores (preferably more) to make this more manageable. Ideally this machine would be upgrade-able so in future it's just a matter of changing the CPU (& if really necessary the motherboard). Something like the AMD Ryzen could be a decent option but I've no allegiance...

I've no issue building a machine if that is the way to go..

Ideally around the €1000 mark,
Thanks for any suggestions!

Leo
 

Offline dobsonr741

  • Frequent Contributor
  • **
  • Posts: 674
  • Country: us
Re: PC for software development - recommendations please!
« Reply #1 on: April 30, 2023, 03:17:16 pm »
Are you managing the dependencies correctly? Is it a single line code change that is taking 14hrs, or is it the full build? If a single line then you need to break up the build into independently built components.

If you stuck with getting enough build power, here are two ways out:
1. Build on a CI server, get as big as you want on AWS.
2. Get a Mac Studio

 

Offline leo938Topic starter

  • Contributor
  • Posts: 21
  • Country: ie
Re: PC for software development - recommendations please!
« Reply #2 on: April 30, 2023, 04:09:06 pm »
Ah no, simple changes are 'relatively ' quick.

Interesting idea of CI on AWS, do you have a ballpark on complexity & cost?
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26912
  • Country: nl
    • NCT Developments
Re: PC for software development - recommendations please!
« Reply #3 on: April 30, 2023, 04:37:18 pm »
1) Get a desktop system that allows to have a CPU that can consume >100W continuously. A laptop is not the ideal choice.
2) Single thread performance is also important as quite a lot of time for these kind of builds is used for extracting archives.
3) Be sure to run Linux natively
4) Have enough memory. 16GB at least. 32GB is better.
5) Make sure the build process uses pipes instead of temporary files

In my experience having a fast hard drive doesn't matter at all. A couple of years ago I tested the difference between SSD and a regular hard drive and it didn't make any difference for compiling large amounts of code.

Whatever you do: buy quality hardware. These kind of builds are very sensitive to marginal hardware. Personally I only buy Dell machines and add things like more memory and bigger hard drives myself.
« Last Edit: April 30, 2023, 04:40:09 pm by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline dobsonr741

  • Frequent Contributor
  • **
  • Posts: 674
  • Country: us
Re: PC for software development - recommendations please!
« Reply #4 on: April 30, 2023, 05:20:22 pm »
Quote
Interesting idea of CI on AWS, do you have a ballpark on complexity & cost?

I suggest trying a Github pipeline first. For free. Then take a look at how to set up self hosted runners, to point to the AWS compute of your choice:
https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners, where you go as beefy as you want.

You can use alternatives to Gihub - there are so many other choices: GitLab, CircleCI, TravisCI, AWS Code Build

Can also go 100% AWS - both repo, CI, build farm. Many getting started guides can be goggled.
« Last Edit: April 30, 2023, 06:19:12 pm by dobsonr741 »
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 4040
  • Country: nz
Re: PC for software development - recommendations please!
« Reply #5 on: April 30, 2023, 05:35:19 pm »
Which Dell XPS?

Year? CPU? RAM?

Thin laptops (except Apple M1/M2) are bad for long builds because they get too hot and throttle waaaay back.
 

Offline Perkele

  • Regular Contributor
  • *
  • Posts: 50
  • Country: ie
Re: PC for software development - recommendations please!
« Reply #6 on: April 30, 2023, 06:26:04 pm »
Hello all,

I'm doing quite a bit of software development (C/C++ stuff with Makefiles & Yocto builds) & it takes about 14 hrs currently for a fresh build on my Dell XPS. Lack of threads is the main issue. I'd like to get a box with at least 6 cores (preferably more) to make this more manageable. Ideally this machine would be upgrade-able so in future it's just a matter of changing the CPU (& if really necessary the motherboard). Something like the AMD Ryzen could be a decent option but I've no allegiance...

I've no issue building a machine if that is the way to go..

Ideally around the €1000 mark,
Thanks for any suggestions!

Leo

14 hours for a Yocto build is ridiculous. How old is the computer that you're using?
NVMe drives (PCI-X 4 generation), 1TB capacity should be around 50 -70 Euro.
It does not matter how many cores your CPU has, if during the build the system is stuck waiting on disk access.

Or another solution, that would cost probably more than 1k Euro, depending on CPU and motherboard - get ECC DRAM with capacity of 64GB or more, and build Yocto from a RAM disk.
 

Offline leo938Topic starter

  • Contributor
  • Posts: 21
  • Country: ie
Re: PC for software development - recommendations please!
« Reply #7 on: April 30, 2023, 07:05:48 pm »
Hello all,

I'm doing quite a bit of software development (C/C++ stuff with Makefiles & Yocto builds) & it takes about 14 hrs currently for a fresh build on my Dell XPS. Lack of threads is the main issue. I'd like to get a box with at least 6 cores (preferably more) to make this more manageable. Ideally this machine would be upgrade-able so in future it's just a matter of changing the CPU (& if really necessary the motherboard). Something like the AMD Ryzen could be a decent option but I've no allegiance...

I've no issue building a machine if that is the way to go..

Ideally around the €1000 mark,
Thanks for any suggestions!

Leo

14 hours for a Yocto build is ridiculous. How old is the computer that you're using?
NVMe drives (PCI-X 4 generation), 1TB capacity should be around 50 -70 Euro.
It does not matter how many cores your CPU has, if during the build the system is stuck waiting on disk access.

Or another solution, that would cost probably more than 1k Euro, depending on CPU and motherboard - get ECC DRAM with capacity of 64GB or more, and build Yocto from a RAM disk.

Its certainty painful! I've hit 16hrs+ on Qt builds. Keep in mind there can be over 6000 tasks, each with fetch, configure, compile, install, etc stages . Some packages are simple but others are beasts..

I'm using a 6 yr old Dell XPS 9360, Intel i5-7200U CPU @ 2.50GHz × 2, 8 GB RAM. It can only run 4 threads so even 8 threads probably half the time, a significant reduction.

I'm using an NVMe 2GB SSD (Samsung 970 EVO Plus), albeit via external  USB C. External is obviously not desirable but I'm building myself up to do a fresh install of Linux Mint. I believe disk speed is important with something like Yocto as there's significant disk activity, however I think threads is the overriding issue given that there's over 6000 tasks, each with multiple stages. On standalone builds probably not so important.

I'm on a 500Mb line so don't believe that's the issue.

Hosting runners on AWS seems quite interesting & worth examining.

« Last Edit: April 30, 2023, 07:09:11 pm by leo938 »
 
The following users thanked this post: RichardS

Offline dobsonr741

  • Frequent Contributor
  • **
  • Posts: 674
  • Country: us
 
The following users thanked this post: TerminatorBetaTester

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 4040
  • Country: nz
Re: PC for software development - recommendations please!
« Reply #9 on: May 01, 2023, 12:38:07 am »
Intel i5-7200U is a dual-core. There's your problem.

Yup. Dual core, 2.5 GHz base with 3.1 turbo, but in a thin (15mm) laptop it will throttle quickly. 15W TDP. Only 3 MB L3 cache.

Any modernish machine -- including this one -- is fine for light development. Working on a web site, a single app, even working on the Linux kernel.

But for things such as (what I do a lot) compiling the entire GNU toolchain from binutils and gdb to gcc and libc, or LLVM you need something stronger. And even more so for compiling a complete Linux distro (even a cut-down one).

If you want to do this on a laptop then get a 14" or 16" MacBook Pro with the 12 core CPU option (8 "performance" cores). But you're not going to get that for 1000 euro/dollars.

Otherwise make or buy a mini-tower.

In name-branch systems a 1000 euro budget is probably just enough to get an 8 core i7-12700T like this...

https://www.pbtech.co.nz/product/WKSHDT5684827/HP-ProDesk-Mini-400-G9-Desktop-PC-Intel-Core-i7-12

... and maybe bump the RAM to 32 GB. Note: NZ$1525 is 855 euro.

Maybe you can get a 12 core (12 proper cores, not P+E) by building it yourself, or getting a shop to custom build for you. I'd suggest the Ryzen 9 7900 as a CPU.

Most things like that go to gamers with lots of bling and lots of price. For software development you don't need the bling. Just the CPU, a decent amount of RAM (at least 32 GB), however much disk space you need, and the cheapest video card you can find.
 

Offline Someone

  • Super Contributor
  • ***
  • Posts: 4532
  • Country: au
    • send complaints here
Re: PC for software development - recommendations please!
« Reply #10 on: May 01, 2023, 01:38:59 am »
In name-branch systems a 1000 euro budget is probably just enough to get an 8 core i7-12700T like this...

https://www.pbtech.co.nz/product/WKSHDT5684827/HP-ProDesk-Mini-400-G9-Desktop-PC-Intel-Core-i7-12
We had some of those compact cases as they were selling really cheap for the specs, under sustained compiles they would thermally throttle pretty hard. Replaced with full size beige box "gaming" machines.
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 4040
  • Country: nz
Re: PC for software development - recommendations please!
« Reply #11 on: May 01, 2023, 01:48:39 am »
In name-branch systems a 1000 euro budget is probably just enough to get an 8 core i7-12700T like this...

https://www.pbtech.co.nz/product/WKSHDT5684827/HP-ProDesk-Mini-400-G9-Desktop-PC-Intel-Core-i7-12
We had some of those compact cases as they were selling really cheap for the specs, under sustained compiles they would thermally throttle pretty hard. Replaced with full size beige box "gaming" machines.

Yes, I agree, at least mini-tower is much better. That was just the best CPU I could find in a name brand machine within the budget. But I didn't spend a long time looking.
 

Offline IanB

  • Super Contributor
  • ***
  • Posts: 11900
  • Country: us
Re: PC for software development - recommendations please!
« Reply #12 on: May 01, 2023, 02:01:48 am »
I'm using a 6 yr old Dell XPS 9360, Intel i5-7200U CPU @ 2.50GHz × 2, 8 GB RAM. It can only run 4 threads so even 8 threads probably half the time, a significant reduction.

I was for some time using a 6-7 year old laptop, disbelieving that a modern system could be that much faster, really. I had upgraded the old system with an SSD and more memory. But when I tried a modern system, I realized how wrong I was. Many tasks and operations become 10x faster! And that was with a laptop, not a desktop.

Get a modern, high performance machine with fast SSDs and plenty of memory, and your 14 hour builds will probably take 30 minutes.
 

Offline DimitriP

  • Super Contributor
  • ***
  • Posts: 1309
  • Country: us
  • "Best practices" are best not practiced.© Dimitri
Re: PC for software development - recommendations please!
« Reply #13 on: May 01, 2023, 02:30:39 am »
Quote
I'm using a 6 yr old Dell XPS 9360, Intel i5-7200U CPU @ 2.50GHz × 2, 8 GB RAM

It awful that you've been suffering with this for the last few years.

The 7200U was born slow. Dropped on its head in order to keep power consumption low. There were faster CPUs even four years before the 7200U existed.


You could find a used , discarded 10 year old machine thats faster than what you have now. ( 3570K, 4790K).

Single thread performance is King, and with a more recent CPU you can have more threads and high single thread performance a'la i7-13700K

Have a look:   https://www.cpubenchmark.net/compare/2865vs828vs2275vs5061vs5060/Intel-i5-7200U-vs-Intel-i5-3570K-vs-Intel-i7-4790K-vs-Intel-i7-13700KF-vs-Intel-i7-13700K


I also stumbled on a benchmarking project for yocto ... It'll be interesting to see your 7200U results. https://github.com/sveinse/yocto-benchmark




{edit for spelling/punctuation  and adding the benchmark}
« Last Edit: May 01, 2023, 02:41:43 am by DimitriP »
   If three 100  Ohm resistors are connected in parallel, and in series with a 200 Ohm resistor, how many resistors do you have? 
 

Offline SiliconWizard

  • Super Contributor
  • ***
  • Posts: 14490
  • Country: fr
Re: PC for software development - recommendations please!
« Reply #14 on: May 01, 2023, 03:05:14 am »
Even going to a recent Core i5 (like 13600K, 50% cheaper than the i7 13700K) and 32GB of RAM will absolutely dramatically improve the OP's build times.
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 4040
  • Country: nz
Re: PC for software development - recommendations please!
« Reply #15 on: May 01, 2023, 05:21:16 am »
I also stumbled on a benchmarking project for yocto ... It'll be interesting to see your 7200U results. https://github.com/sveinse/yocto-benchmark

I just tried to use that on Ubuntu 22.04 LTS. Fell into Python version incompatibility hell. CBA.

Last commit there Jan 2020.

If anyone who knows what they're doing and clones and fixes it, lmk.
 

Online magic

  • Super Contributor
  • ***
  • Posts: 6786
  • Country: pl
Re: PC for software development - recommendations please!
« Reply #16 on: May 01, 2023, 07:18:40 am »
I'm inclined to believe the people saying that storage doesn't make much difference in typical build times, although SSD helps a lot with other things like git.

As usual, run some some system monitoring utility to know where your bottleneck is. CPU is a likely bet indeed.
 

Offline paulca

  • Super Contributor
  • ***
  • Posts: 4057
  • Country: gb
Re: PC for software development - recommendations please!
« Reply #17 on: May 01, 2023, 08:54:18 am »
I used to script build entire Linux OS's including QT, X11, Firefox and Open Office in 18 hours from source.  Originally on a Celeron600.  The last time I did it was on a Phenom octo-core (2008 vintage).  I moved to Ubuntu in about 2017 and stopped building my own OS.  Always on spinning HDD.

The OPs specs are not that low compared to the entry level software development VM these days that we would get in work.  In work, I have a 4 Xeon 2.9GHz cores and 8Gb RAM.  Granted that is probably a slice of a much more modern 96core VM host.  We do build locally.  I have about 25 Java projects in my workspace if I hit "Clean all" with autobuild turned on, it takes about 3 or 4 minutes to build the whole 3Gb of projects.

I think there is something more fundamentally wrong there.

If you are picking Intel CPUs, do a lot of research, two almost identical model numbers can perform very differently.

I was looking at swaping two PCs in the house for "power consumption" reasons.  An i7-4790 versus a much newer i5-6500T.  However in benchmarks, it might surprise you that the old 4th gen will run rings around the 6500T in many areas still.  The most notable is that 35W TDP cap.  It will match the 4700 in all but pure multi-core work, but will overheat and current limit the CPU within minutes of going to full load.  After about 2 minutes it's performance drops to about 1/2 of less of the 4790.  All of that comes from the "T".  T is low power, but I also see it as "Thermally limited".  The headline power figures cannot be achieve sustained at 35W, the die will overheat and throttle in a matter of minutes.
"What could possibly go wrong?"
Current Open Projects:  STM32F411RE+ESP32+TFT for home IoT (NoT) projects.  Child's advent xmas countdown toy.  Digital audio routing board.
 

Offline paulca

  • Super Contributor
  • ***
  • Posts: 4057
  • Country: gb
Re: PC for software development - recommendations please!
« Reply #18 on: May 01, 2023, 09:04:13 am »
I'm inclined to believe the people saying that storage doesn't make much difference in typical build times, although SSD helps a lot with other things like git.

As usual, run some some system monitoring utility to know where your bottleneck is. CPU is a likely bet indeed.

A technique used in modern linux system is to create a ram disk and map it to /tmp

If you build in /tmp you build in RAM.

You can also make your own /build folder as a RAM disk.
"What could possibly go wrong?"
Current Open Projects:  STM32F411RE+ESP32+TFT for home IoT (NoT) projects.  Child's advent xmas countdown toy.  Digital audio routing board.
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 4040
  • Country: nz
Re: PC for software development - recommendations please!
« Reply #19 on: May 01, 2023, 09:25:32 am »
I'm inclined to believe the people saying that storage doesn't make much difference in typical build times, although SSD helps a lot with other things like git.

As usual, run some some system monitoring utility to know where your bottleneck is. CPU is a likely bet indeed.

A technique used in modern linux system is to create a ram disk and map it to /tmp

If you build in /tmp you build in RAM.

You can also make your own /build folder as a RAM disk.

You need a lot of RAM and some organisation to do that.

If you have such an amount of RAM then just letting the disk cache do its job will give pretty much the same results, with a lot more graceful failure mode.
 
The following users thanked this post: nctnico, DiTBho

Offline DiTBho

  • Super Contributor
  • ***
  • Posts: 3915
  • Country: gb
Re: PC for software development - recommendations please!
« Reply #20 on: May 01, 2023, 12:16:47 pm »
software development (C/C++ stuff with Makefiles & Yocto builds)

for? target={ arm? riscv? ... other? }
The opposite of courage is not cowardice, it is conformity. Even a dead fish can go with the flow
 

Offline leo938Topic starter

  • Contributor
  • Posts: 21
  • Country: ie
Re: PC for software development - recommendations please!
« Reply #21 on: May 01, 2023, 02:41:51 pm »
software development (C/C++ stuff with Makefiles & Yocto builds)

for? target={ arm? riscv? ... other? }

ARM nearly exclusively, Raspberry Pi's , ATMEL/Microchip etc.

I do a lot of travel so convenience of a thin XPS is a significant positive but I take the point about thermal throttling.

I've no experience building desktops, if I go with a DIY option is a big issue to upgrade the CPU in say 5 yrs? Will I likely need a new motherboard as well? I understand bus technology will inevitable march on & I imagine its quite likely a new motherboard will be required.

 

Online tszaboo

  • Super Contributor
  • ***
  • Posts: 7392
  • Country: nl
  • Current job: ATEX product design
Re: PC for software development - recommendations please!
« Reply #22 on: May 01, 2023, 02:48:01 pm »
For something like a Yocto build, I would keep using the XPS to edit files and whatnot, just remote desktop into the Linux machine that does the building. And for the actual computer doing the build, a used HP Z series desktop or similar is very hard to beat in value/investment. I see Z640s with 24 cores for sale for ~500 EUR plus postage. When I was building Yocto it was using as many cores as I gave it to it.
 

Offline leo938Topic starter

  • Contributor
  • Posts: 21
  • Country: ie
Re: PC for software development - recommendations please!
« Reply #23 on: May 01, 2023, 03:31:46 pm »
Thanks for the suggestion, there's a HP Z620 going near me for €300, has 4 times the performance of my current setup!
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 4199
  • Country: us
Re: PC for software development - recommendations please!
« Reply #24 on: May 01, 2023, 04:30:43 pm »
Quote
I'm using an NVMe 2GB SSD (Samsung 970 EVO Plus), albeit via external  USB C.
Is there a multi-tasking disk benchmark?
My gut says that the multi-tasking performance of a USB drive might be particularly sucky compared to PCIe or SATA.  (But I don't have any actual data.)

 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf