Hardware upgrades!

I’ve finally managed to upgrade my setup. I was hoping that I would be able to write a regular article, but due to the fact that I needed to return the monitor and waited for a week for another one, I still haven’t started writing it.

Nonetheless I’d like to share with you what I’ve got and why I decided to go for certain options.

PC configuration

I had some hard decision to make. I like my Macbook Pro, but it’s already old, not so great when it comes to efficiency (8GB RAM, 128 GB of SSD and 2-core i5) and my fiancee occupied it most of the time. However, new Macbooks that would cost me 3 times that much as the final setup that I have, so I decided to postpone the decision of buying it until I have more cash and till now build a PC myself from scratch and return to Linux for some time. I’ve always wanted to build my own PC, so I finally I had a reason to do it. Moreover, my fiancee crashed my monitor, so I had a good reason to rebuild entire workspace.

I assumed that I would assemble a machine on “better than average” components, so that they would still be fresh in 2-3 years’ time and have some upgrade potential without the need to throw everything away. On the other hand I was aiming at good productivity performance without the need to excel in games, so I could cut down on the GPU. The results were following:

  • Ryzen 7 3700X CPU,
  • 32 GB of RAM clocked at 3200 MHz (highest the CPU would work with without overclocking) from Adata,
  • MSI X570-A PRO motherboard,
  • Samsung 1TB M.2 PCIe NVMe 970 EVO,
  • Radeon RX 580 Dual OC 8GB,
  • ilentiumPC Supremo L2 650W 80 Plus Gold,
  • SilentiumPC Navis RGB 240 2x120mm cooling,
  • ASUS PCE-AC55BT wireless card,
  • SilentiumPC Astrum AT6V TG Pure Black chasis.

Total cost: about 5000 PLN. Additionally I have a Philips 346B1C/00 Curved monitor. I was looking for something that would fit my desk, so I had to resign from buying 2×27 inch monitors and went for a single on in 21:9 ratio. Also I think that Full HD is a bit too poor definition as for today’s standards, to I went for UWQHD and a USB-C port for easier switching between laptop and desktop and getting rid of a cable for power supply for laptop.

Q&A

Why not Intel?

Because AMD has been a strong choice for productivity, 3rd generation Ryzen CPUs provided excellent performance in this area and AMD has better compatibility when it comes to sockets. So I was afraid I would need to buy a new motherboard if I wanted to upgrade Intel and now I know that if I upgrade to 5th generation Ryzen I would still be able to mount it on the same AM4 I already have.

Why not Windows/macOS?

Costs. Pure and simple. I wanted to save up a little bit and for programming that I do on everyday basis Linux is a perfect choice, especially that Docker, which I utilize a lot is a Linux-first technology. It turns out that I don’t do videos, so having tools for this task isn’t crucial. I can still install Windows on Virtualbox and maybe I’ll buy a Macbook in the future. I don’t have anything against any of those systems (actually I miss my Macbook a bit :-D).

Why Ubuntu?

Because I wanted a balance between stability and frequent releases. I wanted a machine for work, so it couldn’t be any distro where I would spend hours trying to fix the most simple errors. I have good community support, I can install Spotify and Steam and WiFi and Bluetooth drivers out of the box, so why should I bother?

Do you play games if you have a dedicated GPU?

Yup, Company of Heroes. Anything else works fine on PS4.

Why not Nvidia?

Because AMD has better open-source drivers and if I want to play around with them, I will be able to do it more easily.

How is the water cooling?

Looks nice, but it’s a bit louder than I expected it to be. I guess I need to tune it a little bit. On the other hand I tested it while compiling git using parallel jobs and I got stable 67oC. That’s something.

You still use iPhone. Is it convenient?

Hell no. I can browse some files (like KeePassXC database) and photos (they’re completely unordered) and only when connecting through cable. To actually share files I need Dropbox or Google Drive (which fortunately I can mount easily in my file browser). Apple integrates smoothly only with itself :-/

Do you plan any upgrades?

Maybe I’ll buy some additional RAM to fill the remaining 2 slots, but beside this I feel fulfilled. As I say I wanted a setup that would be suitable for work next 2-3 years.

Benchmarks

Time to see some numbers. I’d like to show how much I’ve gained by upgrading. I don’t mean to show that this dedicated PC is faster than my old 2015 Macbook Pro with 2-core i5, because it’s obvious that it’ll beat it. I just want to show how much difference there is. In order to do it I ran 7 zip benchmark for 1 and 16 threads. First, Macbook Pro:

 $ 7z b -mmt=1 -mm=LZMA
 
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=utf8,Utf16=on,HugeFiles=on,64 bits,4 CPUs x64)
 
x64
CPU Freq:  3080  3082  3003  3070  3087  3093  3086  3092  3050
 
RAM size:    8192 MB,  # CPU hardware threads:   4
RAM usage:    435 MB,  # Benchmark threads:      1
 
                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS
 
22:       3409   100   3332   3317  |      39212   100   3353   3348
23:       3336   100   3407   3399  |      38158    99   3328   3303
24:       3177   100   3425   3416  |      37643   100   3319   3305
25:       3047   100   3490   3480  |      37360   100   3332   3325
----------------------------------  | ------------------------------
Avr:             100   3414   3403  |              100   3333   3320
Tot:             100   3373   3362


 $ 7z b -mmt=16 -mm=LZMA
 
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=utf8,Utf16=on,HugeFiles=on,64 bits,4 CPUs x64)
 
x64
CPU Freq:  3057  3097  2982  3003  3051  3015  3096  3086  3093
 
RAM size:    8192 MB,  # CPU hardware threads:   4
RAM usage:   3530 MB,  # Benchmark threads:     16
 
                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS
 
22:       8856   374   2306   8615  |     101502   383   2258   8657
23:       8152   364   2284   8307  |      99550   382   2254   8613
24:       7873   358   2365   8466  |      96234   380   2226   8447
25:       6964   349   2280   7952  |      92620   371   2219   8243
----------------------------------  | ------------------------------
Avr:             361   2309   8335  |              379   2239   8490
Tot:             370   2274   8412
Macbook-Pro-Zuziaczek-2:~ Zuziaczek$ 

And now my Linux

 → 7z b -mmt1 -mm=LZMA

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=pl_PL.UTF-8,Utf16=on,HugeFiles=on,64 bits,16 CPUs AMD Ryzen 7 3700X 8-Core Processor              (870F10),ASM,AES-NI)

AMD Ryzen 7 3700X 8-Core Processor              (870F10)
CPU Freq: - - - - - - - - -

RAM size:   32126 MB,  # CPU hardware threads:  16
RAM usage:    435 MB,  # Benchmark threads:      1

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:       5882   100   5723   5723  |      54374   100   4643   4643
23:       5140   100   5238   5238  |      54082   100   4681   4681
24:       4736   100   5093   5093  |      53636   100   4709   4709
25:       4511   100   5151   5151  |      52999   100   4717   4717
----------------------------------  | ------------------------------
Avr:             100   5301   5301  |              100   4688   4687
Tot:             100   4994   4994



 → 7z b -mmt16 -mm=LZMA

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=pl_PL.UTF-8,Utf16=on,HugeFiles=on,64 bits,16 CPUs AMD Ryzen 7 3700X 8-Core Processor              (870F10),ASM,AES-NI)

AMD Ryzen 7 3700X 8-Core Processor              (870F10)
CPU Freq: - - - - - - - 1024000000 -

RAM size:   32126 MB,  # CPU hardware threads:  16
RAM usage:   3530 MB,  # Benchmark threads:     16

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:      58058  1406   4017  56480  |     661466  1480   3813  56417
23:      55323  1437   3922  56368  |     653726  1481   3818  56561
24:      53282  1463   3915  57289  |     643195  1482   3810  56456
25:      49600  1411   4015  56632  |     630542  1481   3789  56116
----------------------------------  | ------------------------------
Avr:            1429   3967  56692  |             1481   3808  56388
Tot:            1455   3888  56540

How does it relate to everyday tasks? Well, I was able to compile git in 9 seconds using 16 parallel jobs and drop unit test times in a dockerized python project from 1 minute 13 seconds to 50 seconds using sequential test execution.

If you have any questions, don’t hesitate to ask in comments. I’ll be happy to answer.