mersenneforum.org Help to choose components for a Ryzen rig
 Register FAQ Search Today's Posts Mark Forums Read

2018-04-05, 08:12   #1
robert44444uk

Jun 2003
Oxford, UK

1,933 Posts
Help to choose components for a Ryzen rig

I'm trying to go for a decent rig to run a multi-threaded prime gap routine written in perl and I think I can afford a Ryzen 1800 series. Then it comes down to ensuring that all the other components will sing along sweetly and that I am not paying for stuff I don't need:

The current UK spec I am inching towards is:

Quote:
 Processor: AMD Ryzen 7 1800X Eight Core CPU (3.6GHz-4.0GHz/20MB CACHE/AM4) Motherboard: ASUS® PRIME X370-PRO (DDR4, 6Gb/s, CrossFireX/SLI) Memory: 32GB Corsair VENGEANCE DDR4 3000MHz (2 x 16GB) Graphics Card: 1GB NVIDIA GEFORCE 710 - DVI, HDMI, VGA Hard Disk: 250GB Samsung 860 2.5" EVO SSD, SATA 6Gb/s Power Supply: CORSAIR 350W VS SERIES™ VS-350 Processor Cooling: Corsair H80i V2 Hydro Series High Performance CPU Cooler Thermal Paste STANDARD THERMAL PASTE FOR SUFFICIENT COOLING
The program I am planning to run is attached in two benchmark test forms for anyone with a Ryzen set up, who also has perl, who doesn't mind running the benchmarks.

I would be very grateful for any advice you hardware experts might have on this.
Attached Files
 smallgaptest.zip (1.4 KB, 100 views) medgaptest.zip (1.4 KB, 93 views)

 2018-04-05, 09:40 #2 M344587487     "Composite as Heck" Oct 2017 22·199 Posts I have a 1700 and perl 5.22 (but don't use perl as you're about to see). Running "perl smallgaptest.pl" fails as it can't find Timer/Runtime.pm (missing the Timer::Runtime module). I install cpanm and try "sudo cpanm Timer::Runtime", which fails compilation maybe due to missing Time::Elapse. Trying to install Time::Elapse in the same way fails. I don't know enough about Perl to debug the problem or decipher google. Unless you have a magic fix, I tried :P The motherboard is nice, maybe overkill for what you need. A good B350 board should be plenty, it's just the RAM compatibility you need to pay attention to. ASRock is meant to be solid. MSI and Gigabyte supposedly have lower quality VRMs especially in the cheaper boards. I would recommend a 1700 as it's much cheaper (£230), comes with a decent heatsink and can be overclocked to the same as the other two if really necessary. Ryzen+ comes out this month so you need to consider 2700 and 2700X too, benchmarks indicate a 10% performance boost and better RAM support, but as the new line they'll probably be expensive on launch.
2018-04-05, 10:09   #3
robert44444uk

Jun 2003
Oxford, UK

1,933 Posts

Quote:
 Originally Posted by M344587487 I have a 1700 and perl 5.22 (but don't use perl as you're about to see). Running "perl smallgaptest.pl" fails as it can't find Timer/Runtime.pm (missing the Timer::Runtime module). I install cpanm and try "sudo cpanm Timer::Runtime", which fails compilation maybe due to missing Time::Elapse. Trying to install Time::Elapse in the same way fails. I don't know enough about Perl to debug the problem or decipher google. Unless you have a magic fix, I tried :P
Ahh, that's a shame. You could take out the

Code:
use Timer::Runtime;
and instead add the following code at the start, after the "use" section

Code:
my $start_run = time(); and at the end of the code: Code: my$end_run = time();
my $run_time =$end_run - $start_run; print "Job took$run_time seconds\n";
The variable to play with in the benchmarking is
Code:
my $nthreads Good luck with this fix, and hopefully you can get some results for the benchmark. Quote:  The motherboard is nice, maybe overkill for what you need. A good B350 board should be plenty, it's just the RAM compatibility you need to pay attention to. ASRock is meant to be solid. MSI and Gigabyte supposedly have lower quality VRMs especially in the cheaper boards. I would recommend a 1700 as it's much cheaper (£230), comes with a decent heatsink and can be overclocked to the same as the other two if really necessary. Ryzen+ comes out this month so you need to consider 2700 and 2700X too, benchmarks indicate a 10% performance boost and better RAM support, but as the new line they'll probably be expensive on launch. This is very helpful - thank you! Cost is a real issue, so saving money is really good!  2018-04-05, 10:35 #4 Thomas11 Feb 2003 22×32×53 Posts Assuming that you are running this in a Linux environment, you could simply take out the line: Code: use Timer::Runtime; (as suggested by Robert) and use the Linux "time" utility to get the timings, e.g.: Code: time perl smallgaptest.pl 2018-04-05, 10:40 #5 Thomas11 Feb 2003 77416 Posts Quote:  Originally Posted by M344587487 I have a 1700 and perl 5.22 (but don't use perl as you're about to see). Running "perl smallgaptest.pl" fails as it can't find Timer/Runtime.pm (missing the Timer::Runtime module). I install cpanm and try "sudo cpanm Timer::Runtime", which fails compilation maybe due to missing Time::Elapse. Trying to install Time::Elapse in the same way fails. I don't know enough about Perl to debug the problem or decipher google. Unless you have a magic fix, I tried :P Regarding the installation issues with the Perl modules, you could try the following: Code:  sudo cpan force install Time::Elapse force install Timer::Runtime 2018-04-05, 12:21 #6 M344587487 "Composite as Heck" Oct 2017 22·199 Posts Quote:  Originally Posted by Thomas11 Regarding the installation issues with the Perl modules, you could try the following: Code:  sudo cpan force install Time::Elapse force install Timer::Runtime Thanks I figured it out, perl is installed by default on Ubuntu but either I hadn't configured it properly or it was outdated. Did an upgrade then forced the modules in with cpanm --force. For the benchmarks I had to create an empty merits.txt, is that some sort of configuration file I'm missing? Here's the results, but note the CPU may not have been fully utilised for some of the testing: Code: smallgaptest.pl Started: Thu Apr 5 12:37:17 2018 # 39 i * 167#/21534 (1..10000000) mingap 1346 18.791741 2890 PRP67 = 138067*167#/21534-1594 17.389811 2706 PRP68 = 849917*167#/21534-1382 18.318888 2854 PRP68 = 1024807*167#/21534-1516 18.570360 2896 PRP68 = 1192981*167#/21534-1438 17.069326 2670 PRP68 = 1915451*167#/21534-1374 18.040892 2824 PRP68 = 2143205*167#/21534-1338 18.617178 2918 PRP69 = 2627371*167#/21534-1296 17.913754 2808 PRP69 = 2664685*167#/21534-1306 18.160088 2848 PRP69 = 2876147*167#/21534-1446 18.200766 2856 PRP69 = 3143995*167#/21534-1438 21.276427 3340 PRP69 = 3354361*167#/21534-1642 18.265413 2868 PRP69 = 3480211*167#/21534-1522 16.605635 2610 PRP69 = 4073809*167#/21534-1324 18.639102 2930 PRP69 = 4159661*167#/21534-1556 19.536212 3072 PRP69 = 4373099*167#/21534-1706 17.621521 2772 PRP69 = 4649063*167#/21534-1338 18.039961 2840 PRP69 = 5245129*167#/21534-1338 18.271699 2880 PRP69 = 6358703*167#/21534-1286 18.168063 2866 PRP69 = 7230857*167#/21534-1374 16.999550 2682 PRP69 = 7373587*167#/21534-1396 17.260136 2724 PRP69 = 7762661*167#/21534-1286 17.717003 2796 PRP69 = 7717717*167#/21534-1348 19.690642 3108 PRP69 = 7928771*167#/21534-1592 20.459272 3230 PRP69 = 8196017*167#/21534-1388 18.227805 2878 PRP69 = 8328403*167#/21534-1546 16.779002 2650 PRP69 = 8710399*167#/21534-1318 17.282953 2730 PRP69 = 8918557*167#/21534-1398 21.966038 3470 PRP69 = 9026411*167#/21534-1724 17.762752 2806 PRP69 = 9025333*167#/21534-1348 18.737447 2960 PRP69 = 9038041*167#/21534-1338 18.036650 2850 PRP69 = 9399167*167#/21534-1382 19.476307 3078 PRP69 = 9652283*167#/21534-1436 18.654349 2948 PRP69 = 9601057*167#/21534-1374 19.273204 3046 PRP69 = 9701443*167#/21534-1348 smallgaptest.pl Finished: Thu Apr 5 12:39:07 2018, elapsed time = 00:01:49.629163 CPU usage topped out at 400%, indicating that only 4 threads were used (either 4 cores or worse 2 cores with SMT). For comparison mlucas shows up to 800% usage with 8 threads (with and without SMT), and up to 1600% usage for 8 cores with SMT. edit: Accidentally did small twice, running med now. Last fiddled with by M344587487 on 2018-04-05 at 12:39 Reason: idiocy 2018-04-05, 12:51 #7 robert44444uk Jun 2003 Oxford, UK 1,933 Posts My 4 core machine results for varying threads - in seconds Quote:  4 259.2 5 252.6 6 245.4 7 230.6 8 225.5 2x4 222.1 - 2x4 is two instances of the software running concurrently. this compares to your 109 secs. What did you set your my$nthreads at? the variable is in the program, rather than set as a flag - the default in the program as I sent it to you is 4 - and with the Ryzen this can be set up to 16.

I'm sorry I forgot about the merits.txt file :(

Last fiddled with by robert44444uk on 2018-04-05 at 12:52

2018-04-05, 12:53   #8
Mark Rose

"/X\(‘-‘)/X\"
Jan 2013

3×977 Posts

Quote:
 Originally Posted by robert44444uk I'm trying to go for a decent rig to run a multi-threaded prime gap routine written in perl and I think I can afford a Ryzen 1800 series. Then it comes down to ensuring that all the other components will sing along sweetly and that I am not paying for stuff I don't need: The current UK spec I am inching towards is:.
Can you wait two weeks? The new 2000 series desktop chips are due to be released April 19th. They have a few benefits:
• Better energy efficiency, i.e. higher clocks for the same watts.
• Improved multi-core turbo (Precision Boost 2), but this requires a 400 series motherboard. The X470's should be out soon and there will be B450's later this year.
• Higher officially supported memory of DDR4-2933.
• Lower memory latency.

The new 2700X will be faster than the 1800X, consuming a few more watts. If you're trying to save money though, and you'll be running this system 24/7, I'd look at the 2700 (8 cores) or the 2600 (6 cores), both of which consume only 65 watts out of the box.

An early review of the new Ryzens: https://wccftech.com/amd-ryzen-7-270...lished-online/

Prices leaked on Amazon: https://wccftech.com/full-amd-ryzen-...usly-reported/

If your program can only use 4 cores/threads and you can't change this, and you won't be using the machine for other purposes, I'd look at buying an i3-8100 or i3-8350k system instead. It would be cheaper. However, if you're buying a general purpose system, I'd stick with the 2000 series Ryzens.

2018-04-05, 13:02   #9
robert44444uk

Jun 2003
Oxford, UK

1,933 Posts

Quote:
 Originally Posted by Mark Rose Can you wait two weeks? The new 2000 series desktop chips are due to be released April 19th. They have a few benefits: Better energy efficiency, i.e. higher clocks for the same watts. Improved multi-core turbo (Precision Boost 2), but this requires a 400 series motherboard. The X470's should be out soon and there will be B450's later this year. Higher officially supported memory of DDR4-2933. Lower memory latency. The new 2700X will be faster than the 1800X, consuming a few more watts. If you're trying to save money though, and you'll be running this system 24/7, I'd look at the 2700 (8 cores) or the 2600 (6 cores), both of which consume only 65 watts out of the box. An early review of the new Ryzens: https://wccftech.com/amd-ryzen-7-270...lished-online/ Prices leaked on Amazon: https://wccftech.com/full-amd-ryzen-...usly-reported/ If your program can only use 4 cores/threads and you can't change this, and you won't be using the machine for other purposes, I'd look at buying an i3-8100 or i3-8350k system instead. It would be cheaper. However, if you're buying a general purpose system, I'd stick with the 2000 series Ryzens.
Thank you Mark.

I can use any number for cores/threads with this program. As posted, it just means changing the \$nthreads in the program. So I am certainly looking for lots of cores!!

 2018-04-05, 13:28 #10 M344587487     "Composite as Heck" Oct 2017 22·199 Posts Yes my bad, that small result is for threads set to 4. For all the tests the scheduler did a good job of not using SMT when there were cores available. small 8 thread Code: smallgaptest.pl Started: Thu Apr 5 13:58:34 2018 # 39 i * 167#/21534 (1..10000000) mingap 1346 18.791741 2890 PRP67 = 138067*167#/21534-1594 17.389811 2706 PRP68 = 849917*167#/21534-1382 18.318888 2854 PRP68 = 1024807*167#/21534-1516 18.570360 2896 PRP68 = 1192981*167#/21534-1438 17.069326 2670 PRP68 = 1915451*167#/21534-1374 18.040892 2824 PRP68 = 2143205*167#/21534-1338 18.617178 2918 PRP69 = 2627371*167#/21534-1296 17.913754 2808 PRP69 = 2664685*167#/21534-1306 18.160088 2848 PRP69 = 2876147*167#/21534-1446 18.200766 2856 PRP69 = 3143995*167#/21534-1438 21.276427 3340 PRP69 = 3354361*167#/21534-1642 18.265413 2868 PRP69 = 3480211*167#/21534-1522 16.605635 2610 PRP69 = 4073809*167#/21534-1324 18.639102 2930 PRP69 = 4159661*167#/21534-1556 19.536212 3072 PRP69 = 4373099*167#/21534-1706 17.621521 2772 PRP69 = 4649063*167#/21534-1338 18.039961 2840 PRP69 = 5245129*167#/21534-1338 18.271699 2880 PRP69 = 6358703*167#/21534-1286 16.999550 2682 PRP69 = 7373587*167#/21534-1396 18.168063 2866 PRP69 = 7230857*167#/21534-1374 17.717003 2796 PRP69 = 7717717*167#/21534-1348 17.260136 2724 PRP69 = 7762661*167#/21534-1286 19.690642 3108 PRP69 = 7928771*167#/21534-1592 18.227805 2878 PRP69 = 8328403*167#/21534-1546 20.459272 3230 PRP69 = 8196017*167#/21534-1388 16.779002 2650 PRP69 = 8710399*167#/21534-1318 17.282953 2730 PRP69 = 8918557*167#/21534-1398 21.966038 3470 PRP69 = 9026411*167#/21534-1724 18.737447 2960 PRP69 = 9038041*167#/21534-1338 17.762752 2806 PRP69 = 9025333*167#/21534-1348 18.036650 2850 PRP69 = 9399167*167#/21534-1382 19.476307 3078 PRP69 = 9652283*167#/21534-1436 18.654349 2948 PRP69 = 9601057*167#/21534-1374 19.273204 3046 PRP69 = 9701443*167#/21534-1348 smallgaptest.pl Finished: Thu Apr 5 13:59:30 2018, elapsed time = 00:00:55.483178 small 16 thread Code: smallgaptest.pl Started: Thu Apr 5 14:00:03 2018 # 39 i * 167#/21534 (1..10000000) mingap 1346 18.791741 2890 PRP67 = 138067*167#/21534-1594 17.389811 2706 PRP68 = 849917*167#/21534-1382 18.318888 2854 PRP68 = 1024807*167#/21534-1516 18.570360 2896 PRP68 = 1192981*167#/21534-1438 17.069326 2670 PRP68 = 1915451*167#/21534-1374 18.040892 2824 PRP68 = 2143205*167#/21534-1338 18.617178 2918 PRP69 = 2627371*167#/21534-1296 17.913754 2808 PRP69 = 2664685*167#/21534-1306 18.160088 2848 PRP69 = 2876147*167#/21534-1446 18.200766 2856 PRP69 = 3143995*167#/21534-1438 21.276427 3340 PRP69 = 3354361*167#/21534-1642 18.265413 2868 PRP69 = 3480211*167#/21534-1522 16.605635 2610 PRP69 = 4073809*167#/21534-1324 18.639102 2930 PRP69 = 4159661*167#/21534-1556 19.536212 3072 PRP69 = 4373099*167#/21534-1706 17.621521 2772 PRP69 = 4649063*167#/21534-1338 18.039961 2840 PRP69 = 5245129*167#/21534-1338 18.271699 2880 PRP69 = 6358703*167#/21534-1286 16.999550 2682 PRP69 = 7373587*167#/21534-1396 18.168063 2866 PRP69 = 7230857*167#/21534-1374 17.717003 2796 PRP69 = 7717717*167#/21534-1348 17.260136 2724 PRP69 = 7762661*167#/21534-1286 19.690642 3108 PRP69 = 7928771*167#/21534-1592 20.459272 3230 PRP69 = 8196017*167#/21534-1388 18.227805 2878 PRP69 = 8328403*167#/21534-1546 16.779002 2650 PRP69 = 8710399*167#/21534-1318 17.282953 2730 PRP69 = 8918557*167#/21534-1398 21.966038 3470 PRP69 = 9026411*167#/21534-1724 18.737447 2960 PRP69 = 9038041*167#/21534-1338 17.762752 2806 PRP69 = 9025333*167#/21534-1348 18.036650 2850 PRP69 = 9399167*167#/21534-1382 19.476307 3078 PRP69 = 9652283*167#/21534-1436 18.654349 2948 PRP69 = 9601057*167#/21534-1374 19.273204 3046 PRP69 = 9701443*167#/21534-1348 smallgaptest.pl Finished: Thu Apr 5 14:00:45 2018, elapsed time = 00:00:42.469672 med 4 thread Code: medgaptest.pl Started: Thu Apr 5 14:18:17 2018 # 812 i * 6247#/21534 (1..200) mingap 36818 10.759297 66072 PRP2667 = 113*6247#/21534-30748 9.445520 58008 PRP2668 = 169*6247#/21534-24602 9.827430 60354 PRP2668 = 179*6247#/21534-31708 medgaptest.pl Finished: Thu Apr 5 14:25:59 2018, elapsed time = 00:07:41.586702 med 7 thread Code: medgaptest.pl Started: Thu Apr 5 13:30:32 2018 # 812 i * 6247#/21534 (1..200) mingap 36818 10.759297 66072 PRP2667 = 113*6247#/21534-30748 9.445520 58008 PRP2668 = 169*6247#/21534-24602 9.827430 60354 PRP2668 = 179*6247#/21534-31708 medgaptest.pl Finished: Thu Apr 5 13:35:58 2018, elapsed time = 00:05:25.865843 med 8 thread Code: medgaptest.pl Started: Thu Apr 5 14:01:57 2018 # 812 i * 6247#/21534 (1..200) mingap 36818 10.759297 66072 PRP2667 = 113*6247#/21534-30748 9.445520 58008 PRP2668 = 169*6247#/21534-24602 9.827430 60354 PRP2668 = 179*6247#/21534-31708 medgaptest.pl Finished: Thu Apr 5 14:06:53 2018, elapsed time = 00:04:55.464834 med 16 thread Code: medgaptest.pl Started: Thu Apr 5 14:07:16 2018 # 812 i * 6247#/21534 (1..200) mingap 36818 9.445520 58008 PRP2668 = 169*6247#/21534-24602 10.759297 66072 PRP2667 = 113*6247#/21534-30748 9.827430 60354 PRP2668 = 179*6247#/21534-31708 medgaptest.pl Finished: Thu Apr 5 14:11:27 2018, elapsed time = 00:04:11.299515 It should be noted that the med test had variable CPU utilisation. It used the maximum number of threads specified for maybe 60% of the test, after which the number of threads kept dropping (presumably after they finished what they were doing and there was no more single-core work to grab from the bag).
2018-04-05, 13:58   #11
robert44444uk

Jun 2003
Oxford, UK

1,933 Posts

Quote:
 Originally Posted by M344587487 For all the tests the scheduler did a good job of not using SMT when there were cores available. 8 thread smallgaptest.pl elapsed time = 00:00:55.483178 16 thread smallgaptest.pl elapsed time = 00:00:42.469672
42.5 secs compared to 222.1 secs for my 4 core!!!!

Here were the med test timings for my 4 core, using a varying number of threads (in secs)

Code:
threads	runtime

4	555.3
5	497.2
6	492.3
7	483.8
8	466.4
This compares to your:

Code:
threads	runtime

4	461.6
7	325.8
8	295.4
16	252.3
The lack of super-performance in the med test is, I have no doubt, due to the lack of work for the cores. As you say:
Quote:
 It should be noted that the med test had variable CPU utilisation. It used the maximum number of threads specified for maybe 60% of the test, after which the number of threads kept dropping (presumably after they finished what they were doing and there was no more single-core work to grab from the bag)
A better guide is the small test. Overall I can see that upgrading to the Ryzen will be a good idea. 5x performance upgrade, for twice the number of cores.

Last fiddled with by robert44444uk on 2018-04-05 at 14:01

 Similar Threads Thread Thread Starter Forum Replies Last Post Prime95 Hardware 9 2018-05-14 04:06 Prime95 Software 10 2017-05-08 13:24 jasong Hardware 11 2017-03-02 19:56 Unregistered PrimeNet 3 2003-12-10 04:32 Wacky Puzzles 5 2003-07-16 20:02

All times are UTC. The time now is 21:12.

Tue May 18 21:12:27 UTC 2021 up 40 days, 15:53, 0 users, load averages: 2.34, 2.31, 2.30