Hardware upgrade for Julia programming

Hello I want to improve the compilation time of Julia, working of vs code itself - autocompletion github copilot. Secondary goal is to improve multithreaded runtime of programs. I would like to spend on the PC upgrade around 1300 US dollars. Would you recommend me what should be changed primarly and what would you recommend? Also If you could give a very rough estimation how mach faster I can make the compilation by this investment (more like 5 or more like 50 %)?

My current hardware:
CPU: Intel(R) Core™ i9-10850K CPU @ 3.60GHz
RAM: 80 GB ram ddr4 Speed: 2133 MT/s
Motherboard: Z490 AORUS ULTRA (Gigabyte)
GPU : 2x RTX 3090 (need to stay)
DISK : ATA Samsung SSD 860

Thanks for any tips!

Copilot auto completion sends your code off to a server and has to wait for the server, so your rig isn’t going to move the needle on that unfortunately.

I don’t know about percentages, but upgrading your CPU/motherboard combo looks like it would be the highest leverage upgrade here.

4 Likes

About 45% more CPU speed, but not sure how much of this speed remains in practice…

1 Like

FWIW, userbenchmark is generally considered a pro-Intel joke and not taken seriously.
I’m not sure what the author’s affiliantions are, but it is generally not taken seriously.

9 Likes

Since it sounds like @Jakub_Mitura is interested in improving speed of code compilation, you could use benchmarks that time the compilation of the Linux kernel as a proxy:

Both sets of results are pretty are highly-consistent but the second link has a lot more CPU’s with larger sample sizes indicated. Based on that data, an AMD Ryzen 7950X or an Intel 19-14900K have roughly identical compilation performance at around 512 s to complete, both of which complete in about 40% the time it would take for your i9-10850K to do the same.

Also, pretty much any quality PCIe Gen 4 or 5 storage drive using NVME will be a big performance improvement over a SATA drive. I personally tend toward Samsung EVO (or PRO if the price is good).

4 Likes

I have a Ryzen 7950X myself and I am happy with it. But 60% of my Julia workloads are single-threaded, and then the improvements are smaller than for multithreaded workloads…

2 Likes

Note that Samsung sometimes seems to do poorly on Linux, e.g.

Here it does better: https://www.phoronix.com/review/inland-td510-gen5-linux/4
Probably worth looking at a few more NVMe - Phoronix

1 Like

It is always difficult to fairly benchmark components at the hardware
level much less interpret the results.

The OP’s Z490 Aorus motherboard has 3 M.2 SSD slots (I don’t know
if I have the correct one) and a bunch of 6Gps SATA ports. If the SATA
SSDs were replaced by M.2 SSDs then the bandwidth would increase
by an order of magnitude and the I/Os per second similarly for pretty
much any M.2 SSD.

I suggest that this change might be the easiest and cheapest first step
to improved performance. The MB spec I saw seems to suggest that
you could even RAID the M.2 slots (all three)!

2 Likes

Same here but a 3950X. I picked it up at launch a few years back and it’s been rock solid ever since. Single-threaded performance has been good enough that it’s never felt slow. Multi-core performance has been great. At this rate I don’t see any real need to upgrade CPU for probably at least another generation or two.

2 Likes

You seem to have a fairly fast system, so I am not sure what the bottleneck is.

Frankly, I would just leave it as it is for now, and wait out the next generation of AMD CPUs, corresponding motherboards and RAM. Unless you have a lot of money to burn, the marginal practical improvement may not justify the cost. I agree with @mike.ingold that these days it does not make sense to upgrade every generation for most people.

You may want to replace the SSD when your files outgrow its capacity, but it may not result in an actual performance improvement for Julia programming. With 80GB of RAM you have enough cache for practical purposes when it comes to loading source files, so it very unlikely to make a difference. I recently did an SSD upgrade, and while the benchmarks say it is 4–5x faster than my previous one, I can’t say I actually notice this when programming.

Personally, if I had your setup, I would rather spend around $400 on ergonomic improvements like a nice screen or a standing desk (unless you already have both). They make programming much more enjoyable for me. YMMV.

14 Likes

What operating system do you use? I find that Julia performance on Linux is often better than Windows on the same hardware.

4 Likes

As others have mentioned, you have a pretty good setup at the moment, and it might be worth sticking it out for a while until the next generation of CPUs is launched.

However, if you’re keen to go ahead then you can get the following parts (or similar) for an upgrade for around 1300 USD - https://pcpartpicker.com/list/PJNMxH. This will have a faster CPU on a newer platform that should last you a while. You will have access to DDR5 RAM and Gen5 SSDs, both of which would be a big improvement over the current setup.

This of course assuming you keep the GPUs, PSU, case and existing SSD etc.

9 Likes

thanks for letting me know, I use Ubuntu

2 Likes

If you upgrade your dev machine’s cpu at all, then I recommend taking something with avx512.

Not for speed per-se, but because this is a beautiful instruction set and an important capability, and you’ll curse yourself when you want to write a simd algo that you cannot test locally on your machine.

You don’t need the wide registers of the intel implementation, the amd half-implementation is fine – this is about the more versatile instruction set that enables different algorithms.

7 Likes

Ryzen 9 7950, 64 gb RAM clocked at 6,000, a motherboard that directly supports gen 5 on first nvme drive and (at least) gen 4 on the rest. That nvme drive will make your compile speeds seem almost instantaneous for on-machine work; at least it does on mine. Very long compiles, where the web is used to download other software components will, of course, take longer. I made a short write-up about this in general. Should come in well under your budget, esp right now with the Ryzen 9’s on sale.

8 Likes

As others have said, upgrade that SSD to a NVME one.

You can carry that upgrade easily to another computer, its relatively cheap, and it will increase other performance characteristics as well.

Also, you could consider a system with a 14700(k) or a 7950X from the second hand market.

They seem to have a good price - performance ratio.

2 Likes

One more thought on top of the good advice already here: if you wanted to put in a little money and get something for it, from a quick google your RAM is the slowest RAM that your motherboard supports (link). I would guess decently fast DDR4 is pretty affordable at this point, and your CPU looks like it works with RAM up to 2933 MT/s (link). Maybe spending a few hundred bucks and upgrading to faster RAM would give you a perceptible speedup on some things?

I write this in part because I am interested to be corrected by more knowledgeable compute folks! I’m sure the quality of this suggestion also depends on what computing tasks you actually do.

4 Likes

I recently upgraded to a Ryzen 7900 based system. It is great, but I could not boot Ubuntu 22.04 on it (fail with this error: hub 8-0:1.0: config failed, hub doesn’t have any ports! (err -19)). It runs fine on 23.10.

1 Like

I am running Ubuntu 22.04 on a Ryzen 7950x system. I get the same error message, but it boots nevertheless, so it is just a warning…

Perhaps I had to remove one connected USB hub or USB cable to make it work (don’t remember), but now it works just fine…

5 Likes