climateprediction.net (CPDN) home page
Thread 'AMD Ryzen 7 2700X taking 50 days to complete a project running 24/7'

Thread 'AMD Ryzen 7 2700X taking 50 days to complete a project running 24/7'

Message boards : Number crunching : AMD Ryzen 7 2700X taking 50 days to complete a project running 24/7
Message board moderation

To post messages, you must log in.

AuthorMessage
antkin

Send message
Joined: 18 Feb 20
Posts: 7
Credit: 25,949,462
RAC: 205,235
Message 63243 - Posted: 2 Jan 2021, 12:11:26 UTC

Running Ubuntu 20.04 Has 8 cores 16 threads how do I stop Boinc from running threads and run on CPU cores only ? Can this be done through preferences rather than a script?
ID: 63243 · Report as offensive     Reply Quote
Les Bayliss
Volunteer moderator

Send message
Joined: 5 Sep 04
Posts: 7629
Credit: 24,240,330
RAC: 0
Message 63244 - Posted: 2 Jan 2021, 13:11:08 UTC - in response to Message 63243.  
Last modified: 2 Jan 2021, 13:13:40 UTC

Go to your project Account page.
In the 2nd section, Preferences, click on Computing preferences

Down at the bottom, click the edit button.

In the 1st item, Usage limits set the % cpus that you want.
(8)

Click the Update button at the bottom.

*********************

You also need to set BOINC, in the Manager menu, to Run on preferences.
ID: 63244 · Report as offensive     Reply Quote
WB8ILI

Send message
Joined: 1 Sep 04
Posts: 161
Credit: 81,522,141
RAC: 1,164
Message 63245 - Posted: 2 Jan 2021, 14:52:23 UTC

Antkin -

You might want to consider only running 4 models concurrently on your 2700X.

The 2700X has 16MB of L3 cache and there was a discussion (which I can't find) about each model needing 4MB of L3 cache to run efficiently.
ID: 63245 · Report as offensive     Reply Quote
Bryn Mawr

Send message
Joined: 28 Jul 19
Posts: 150
Credit: 12,830,559
RAC: 228
Message 63247 - Posted: 2 Jan 2021, 15:33:02 UTC - in response to Message 63245.  

Antkin -

You might want to consider only running 4 models concurrently on your 2700X.

The 2700X has 16MB of L3 cache and there was a discussion (which I can't find) about each model needing 4MB of L3 cache to run efficiently.


Very definitely. Both my Ryzen 5s have an app_config file limiting it to 3 per machine and the 3600 completes in 10 days whilst the 2600 takes 12 days.
ID: 63247 · Report as offensive     Reply Quote
ProfileDave Jackson
Volunteer moderator

Send message
Joined: 15 May 09
Posts: 4540
Credit: 19,039,635
RAC: 18,944
Message 63248 - Posted: 2 Jan 2021, 17:27:48 UTC - in response to Message 63247.  

Yes even on my Ryzen73700X tasks complete slightly faster going right down to 2 tasks though up to 5 throughput certainly increases overall.
Please do not private message myself or other moderators for help. This limits the number of people who are able to help and deprives others who may benefit from the answer.
ID: 63248 · Report as offensive     Reply Quote
KAMasud

Send message
Joined: 6 Oct 06
Posts: 204
Credit: 7,608,986
RAC: 0
Message 63251 - Posted: 2 Jan 2021, 21:25:55 UTC - in response to Message 63243.  

Running Ubuntu 20.04 Has 8 cores 16 threads how do I stop Boinc from running threads and run on CPU cores only? Can this be done through preferences rather than a script?

-------------------------------
While rebooting, press F2 to get into BIOS. In the BIOS switch off Hyper-Threading. You will be left with physical cores only running. If I run three WU's my system consumes 10 GB of RAM. WU's plus system. If you take one GB for the system, then each WU is using 3 GB of RAM. If you have 16 GB's of RAM and six cores, you can only run three WU's. In BOINC preferences set to use only 50% of CPU's which makes three. In VM it is a bit different. You can set in the VM how many CPU's to be used but you will also have to allocate enough RAM.
ID: 63251 · Report as offensive     Reply Quote
Jim1348

Send message
Joined: 15 Jan 06
Posts: 637
Credit: 26,751,529
RAC: 653
Message 63253 - Posted: 3 Jan 2021, 2:01:04 UTC - in response to Message 63251.  
Last modified: 3 Jan 2021, 2:06:26 UTC

Can this be done through preferences rather than a script?

Sure. Just set BOINC to run on 50% of the processors, and it will use only 8 threads (equal to the number of cores).

But when running hadm4h, your really don't want to use more than two cores, especially on a Ryzen 2700. So it would be best to use an app_config.xml file to limit them two cores anyway.

You could probably run three or four on a Ryzen 3600 due to its larger cache, but I limit my 3600 to two cores also for best performance, leaving the other cores free for other purposes.
ID: 63253 · Report as offensive     Reply Quote
Profilegeophi
Volunteer moderator

Send message
Joined: 7 Aug 04
Posts: 2187
Credit: 64,822,615
RAC: 5,275
Message 63254 - Posted: 3 Jan 2021, 3:50:27 UTC - in response to Message 63253.  
Last modified: 3 Jan 2021, 3:51:24 UTC

You could probably run three or four on a Ryzen 3600 due to its larger cache, but I limit my 3600 to two cores also for best performance, leaving the other cores free for other purposes.


Best performance is a relative. In terms of maximum throughput, on a Ryzen 3000 series with 32 MB of L3, maximum throughput would be at least 5 cores. I just upped my 3600X to 5 and the 5th one is still at around 15 sec/TS (up from 13-13.5 when running 4. So, in terms of best production for the project, more is better, up to a point. I'm sure 6 would be the max throughput, but I'm not going there yet. For the 2700X, I know at least 4 works well (on my 2600X that was the case), and 5 or 6 would give more completions per unit time.

It's sure not worth it running these big models on the SMT/Hyperthreads though.
ID: 63254 · Report as offensive     Reply Quote
lazlo_vii

Send message
Joined: 11 Dec 19
Posts: 108
Credit: 3,012,142
RAC: 0
Message 63269 - Posted: 5 Jan 2021, 5:10:23 UTC - in response to Message 63254.  

Something else to consider:

All Ryzen CPU's in the 1000 to 3000 range have L3 cache dedicated to each 3 core or 4 core Core Complex (CCX) and these communicate at over the Infinity Fabric (IF). IF speeds are not uniform for read and write operations. Writes are slower than reads. Read that last sentence again and let it sink in. Transferring data across the IF to a different CCX will cause small but measurable delays in computation. While you will never notice these delays while browsing the web or streaming video, or in any number of other short term tasks the delays will become apparent when running tasks like CPDN that take days or weeks to finish. Isolating (AKA CPU pinning) tasks on specific CCX's will grant a small performance boost that over time will be quite significant in the case of long term workloads.

AMD "fixed" this for the Ryzen 5000 line of CPU's.

My own two cents:

Use LXD to isolate CPDN workloads on specific CCX's and do not turn off SMT (Symmetric Multi-Threading AKA Hyper threading). Instead set BOINC to use 3/8 of the threads in each CCX and let the OS use the which ever logical cores it chooses for background tasks and thermal management.

You will have to do some digging through old articles about the 2700X to find the right settings (and maybe learn a bit about containerization) if you go this route, but you will see a long term performance boost over running 6 threads with no CPU isolation.
ID: 63269 · Report as offensive     Reply Quote
Jim1348

Send message
Joined: 15 Jan 06
Posts: 637
Credit: 26,751,529
RAC: 653
Message 63275 - Posted: 5 Jan 2021, 19:40:44 UTC - in response to Message 63254.  
Last modified: 5 Jan 2021, 19:45:17 UTC

It's sure not worth it running these big models on the SMT/Hyperthreads though.

Maybe that is the difference we see. I normally run with SMT/Hyperthreading on. It maximizes total output when you are running other projects in addition to CPDN, but you can run out of cache easily enough.

If you ran on six cores on your 3600X with HT off, I think you would see exactly the same performance as on six cores with HT on, if you were running no other projects. In fact, it might be a little better, since the HT would better provide for some desktop use.
ID: 63275 · Report as offensive     Reply Quote
Profilegeophi
Volunteer moderator

Send message
Joined: 7 Aug 04
Posts: 2187
Credit: 64,822,615
RAC: 5,275
Message 63278 - Posted: 6 Jan 2021, 0:12:46 UTC - in response to Message 63275.  

It's sure not worth it running these big models on the SMT/Hyperthreads though.

Maybe that is the difference we see. I normally run with SMT/Hyperthreading on. It maximizes total output when you are running other projects in addition to CPDN, but you can run out of cache easily enough.

If you ran on six cores on your 3600X with HT off, I think you would see exactly the same performance as on six cores with HT on, if you were running no other projects. In fact, it might be a little better, since the HT would better provide for some desktop use.

I was more speaking/writing to the idea of not running more cpdn tasks than one has physical cores, not whether HT is on or off. But yes, if one is running other projects with these N216 models, total distributed computing output can definitely benefit with HT. Although I don't think WCG MIP or ARP would fare well on a 3600X with 6 N216 models.
ID: 63278 · Report as offensive     Reply Quote
Jim1348

Send message
Joined: 15 Jan 06
Posts: 637
Credit: 26,751,529
RAC: 653
Message 63280 - Posted: 6 Jan 2021, 10:02:12 UTC - in response to Message 63278.  
Last modified: 6 Jan 2021, 10:09:44 UTC

Although I don't think WCG MIP or ARP would fare well on a 3600X with 6 N216 models.

MIP and ARP do not get along with each other in any case. CPDN would probably not help any, but they have other problems. I run them on separate machines, and have to limit the number even then.

But the Ryzen 3600 otherwise works well with them if they are properly limited in number. And you would have to limit them even more on a Ryzen 2000 series due to the more limited cache. I like the 3600's a lot, and they are about the only reasonably priced ones now in the U.S.
ID: 63280 · Report as offensive     Reply Quote
ProfileDave Jackson
Volunteer moderator

Send message
Joined: 15 May 09
Posts: 4540
Credit: 19,039,635
RAC: 18,944
Message 63281 - Posted: 6 Jan 2021, 11:33:15 UTC

MIP and ARP do not get along with each other in any case. CPDN would probably not help any, but they have other problems. I run them on separate machines, and have to limit the number even then.


I haven't run MIP but ARP doesn't get along well with N216 tasks at any rate at least, things slow down a lot if I go over five tasks in total between the two on my 3700X.

Please do not private message myself or other moderators for help. This limits the number of people who are able to help and deprives others who may benefit from the answer.
ID: 63281 · Report as offensive     Reply Quote
mmonnin

Send message
Joined: 28 May 17
Posts: 49
Credit: 17,332,112
RAC: 7,027
Message 63475 - Posted: 3 Feb 2021, 2:14:40 UTC

I just suspend the extra CPDN tasks that I don't want to run. When 1st batch completes then I resume some more. This still allows other projects to DL work instead of using app_config.
ID: 63475 · Report as offensive     Reply Quote

Message boards : Number crunching : AMD Ryzen 7 2700X taking 50 days to complete a project running 24/7

©2024 cpdn.org