Message boards : Number crunching : AMD Ryzen 7 2700X taking 50 days to complete a project running 24/7
Message board moderation
Author | Message |
---|---|
Send message Joined: 18 Feb 20 Posts: 7 Credit: 25,949,462 RAC: 205,235 |
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? |
Send message Joined: 5 Sep 04 Posts: 7629 Credit: 24,240,330 RAC: 0 |
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. |
Send message Joined: 1 Sep 04 Posts: 161 Credit: 81,522,141 RAC: 1,164 |
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. |
Send message Joined: 28 Jul 19 Posts: 149 Credit: 12,830,559 RAC: 228 |
Antkin - 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. |
Send message Joined: 15 May 09 Posts: 4537 Credit: 19,001,532 RAC: 21,726 |
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. |
Send message Joined: 6 Oct 06 Posts: 204 Credit: 7,608,986 RAC: 0 |
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. |
Send message Joined: 15 Jan 06 Posts: 637 Credit: 26,751,529 RAC: 653 |
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. |
Send message Joined: 7 Aug 04 Posts: 2187 Credit: 64,822,615 RAC: 5,275 |
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. |
Send message Joined: 11 Dec 19 Posts: 108 Credit: 3,012,142 RAC: 0 |
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. |
Send message Joined: 15 Jan 06 Posts: 637 Credit: 26,751,529 RAC: 653 |
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. |
Send message Joined: 7 Aug 04 Posts: 2187 Credit: 64,822,615 RAC: 5,275 |
It's sure not worth it running these big models on the SMT/Hyperthreads though. 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. |
Send message Joined: 15 Jan 06 Posts: 637 Credit: 26,751,529 RAC: 653 |
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. |
Send message Joined: 15 May 09 Posts: 4537 Credit: 19,001,532 RAC: 21,726 |
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.
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. |
Send message Joined: 28 May 17 Posts: 49 Credit: 17,295,644 RAC: 6,078 |
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. |
©2024 cpdn.org