# Hardware upgrade for Julia programming

**URL:** https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036
**Category:** Tooling
**Tags:** question, recommendations, hardware
**Created:** [March 24, 2024, 8:45am UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036 "2024-03-24T08:45:58Z")
**Posts on this page:** 19
**Page:** 1

<div class="post-metadata">

### Author: ![Jakub\_Mitura](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jakub_mitura/32/19496_2.png) [@Jakub\_Mitura](https://discourse.julialang.org/u/Jakub_Mitura)
#### Post date: [March 24, 2024, 8:45am UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/1 "2024-03-24T08:45:58Z")

</div>

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!

---

<div class="post-metadata">

### Author: ![mrufsvold](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mrufsvold/32/31600_2.png) [@mrufsvold](https://discourse.julialang.org/u/mrufsvold)
#### Post date: [March 24, 2024, 12:48pm UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/2 "2024-03-24T12:48:03Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)
#### Post date: [March 24, 2024, 1:17pm UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/3 "2024-03-24T13:17:16Z")

</div>

> [@Jakub\_Mitura](#):
>
> i9-10850K

> **[UserBenchmark: AMD Ryzen 9 7950X3D vs Intel Core i9-10850K](https://cpu.userbenchmark.com/Compare/Intel-Core-i9-10850K-vs-AMD-Ryzen-9-7950X3D/m1255865vsm2052977)**
>
> Based on 85,959 user benchmarks for the AMD Ryzen 9 7950X3D and the Intel Core i9-10850K, we rank them both on effective speed and value for money against the best 1,441 CPUs.

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

---

<div class="post-metadata">

### Author: ![Elrod](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/elrod/32/22461_2.png) [@Elrod](https://discourse.julialang.org/u/Elrod)
#### Post date: [March 24, 2024, 1:52pm UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/4 "2024-03-24T13:52:57Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![mike.ingold](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mike.ingold/32/203749_2.png) [@mike.ingold](https://discourse.julialang.org/u/mike.ingold)
#### Post date: [March 24, 2024, 2:17pm UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/5 "2024-03-24T14:17:09Z")

</div>

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:

- [Phoronix review of AMD Ryzen 7800X3D with a table of Linux kernel benchmark results](https://www.phoronix.com/review/amd-ryzen-7-7800x3d-linux/6)
- [Timed Linux Kernel Compilation Benchmark - OpenBenchmarking.org](https://openbenchmarking.org/test/pts/build-linux-kernel&eval=f06bdc65d8d218e96da2676cdcc292140486c21c#metrics)

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).

---

<div class="post-metadata">

### Author: ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)
#### Post date: [March 24, 2024, 2:25pm UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/6 "2024-03-24T14:25:27Z")

</div>

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…

---

<div class="post-metadata">

### Author: ![Elrod](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/elrod/32/22461_2.png) [@Elrod](https://discourse.julialang.org/u/Elrod)
#### Post date: [March 24, 2024, 2:27pm UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/7 "2024-03-24T14:27:42Z")

</div>

> [@mike.ingold](#):
>
> 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).

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

> **[Corsair MP700 PRO 2TB PCIe Gen5 NVMe SSD Review](https://www.phoronix.com/review/corsair-mp700-pro/4)**
>
> .

> **[Solidigm P44 Pro Linux Performance Review](https://www.phoronix.com/review/solidigm-p44-pro/4)**
>
> DBench is another case like SQLite where the Samsung SSDs perform extremely poor under Linux while the Solidigm P44 Pro drives were offering comparable performance to the WD\_BLACK SN850 and P41 Plus drives.
> 
> 
> For those wanting to run their own...

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

---

<div class="post-metadata">

### Author: ![devel-chm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/devel-chm/32/3572_2.png) [@devel-chm](https://discourse.julialang.org/u/devel-chm)
#### Post date: [March 24, 2024, 2:51pm UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/8 "2024-03-24T14:51:44Z")

</div>

> [@Elrod](#):
>
> > [@mike.ingold](#):
> >
> > 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).
> 
> Note that Samsung sometimes seems to do poorly on Linux, e.g.

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)!

---

<div class="post-metadata">

### Author: ![mike.ingold](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mike.ingold/32/203749_2.png) [@mike.ingold](https://discourse.julialang.org/u/mike.ingold)
#### Post date: [March 24, 2024, 3:18pm UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/9 "2024-03-24T15:18:24Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [March 24, 2024, 4:46pm UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/10 "2024-03-24T16:46:27Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)
#### Post date: [March 24, 2024, 8:22pm UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/11 "2024-03-24T20:22:40Z")

</div>

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

---

<div class="post-metadata">

### Author: ![jmair](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jmair/32/35117_2.png) [@jmair](https://discourse.julialang.org/u/jmair)
#### Post date: [March 24, 2024, 10:46pm UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/12 "2024-03-24T22:46:41Z")

</div>

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](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.

---

<div class="post-metadata">

### Author: ![Jakub\_Mitura](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jakub_mitura/32/19496_2.png) [@Jakub\_Mitura](https://discourse.julialang.org/u/Jakub_Mitura)
#### Post date: [March 25, 2024, 5:45am UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/13 "2024-03-25T05:45:40Z")

</div>

thanks for letting me know, I use Ubuntu

---

<div class="post-metadata">

### Author: ![foobar\_lv2](https://avatars.discourse-cdn.com/v4/letter/f/ee59a6/32.png) [@foobar\_lv2](https://discourse.julialang.org/u/foobar_lv2)
#### Post date: [March 25, 2024, 10:55am UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/14 "2024-03-25T10:55:40Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![skypuppy](https://avatars.discourse-cdn.com/v4/letter/s/54ee81/32.png) [@skypuppy](https://discourse.julialang.org/u/skypuppy)
#### Post date: [March 26, 2024, 3:33pm UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/15 "2024-03-26T15:33:39Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![ShalokShalom](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shalokshalom/32/52462_2.png) [@ShalokShalom](https://discourse.julialang.org/u/ShalokShalom)
#### Post date: [March 28, 2024, 7:17am UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/16 "2024-03-28T07:17:05Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![cgeoga](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cgeoga/32/216186_2.png) [@cgeoga](https://discourse.julialang.org/u/cgeoga)
#### Post date: [March 28, 2024, 5:54pm UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/17 "2024-03-28T17:54:29Z")

</div>

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](https://www.gigabyte.com/Motherboard/Z490-AORUS-ULTRA-rev-1x/sp#sp)). 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](https://ark.intel.com/content/www/us/en/ark/products/205904/intel-core-i9-10850k-processor-20m-cache-up-to-5-20-ghz.html)). 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.

---

<div class="post-metadata">

### Author: ![tp2750](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tp2750/32/207806_2.png) [@tp2750](https://discourse.julialang.org/u/tp2750)
#### Post date: [April 6, 2024, 7:52pm UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/18 "2024-04-06T19:52:59Z")

</div>

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)](https://askubuntu.com/questions/1463310/hub-8-01-0-config-failed-hub-doesnt-have-any-ports-err-19)). It runs fine on 23.10.

---

<div class="post-metadata">

### Author: ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)
#### Post date: [April 6, 2024, 8:33pm UTC](https://discourse.julialang.org/t/hardware-upgrade-for-julia-programming/112036/19 "2024-04-06T20:33:34Z")

</div>

> [@tp2750](#):
>
> 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)](https://askubuntu.com/questions/1463310/hub-8-01-0-config-failed-hub-doesnt-have-any-ports-err-19)).

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…
