Message boards : Number crunching : Optimal CPU usage?
Message board moderation

To post messages, you must log in.

AuthorMessage
wolfman1360

Send message
Joined: 17 Feb 17
Posts: 42
Credit: 1,564,296
RAC: 1,475
Message 44400 - Posted: 26 Feb 2021, 20:35:58 UTC

Hello,
Back crunching here a little after quite a long while, starting things off slow.
Currently have an duel Opteron 6128 and i7-3610qm.
They seem to be receiving a lot of Atlas tasks, which are multithreaded. I do not recall if there are others that are multi threaded as well - perhaps CMS?
In people's experience, what is more efficient? Less cores thus long runtimes or more cores and shorter runtimes, per task? I see these Atlas tasks run about 2.5 gb of ram per WU. is it just a matter of not oversaturating the ram, as it were?
Right now I am running 4 threads per task, as per project settings and max number of CPUs.
ID: 44400 · Report as offensive     Reply Quote
Harri Liljeroos
Avatar

Send message
Joined: 28 Sep 04
Posts: 536
Credit: 29,099,499
RAC: 13,075
Message 44402 - Posted: 26 Feb 2021, 22:19:02 UTC - in response to Message 44400.  

Hello,
Back crunching here a little after quite a long while, starting things off slow.
Currently have an duel Opteron 6128 and i7-3610qm.
They seem to be receiving a lot of Atlas tasks, which are multithreaded. I do not recall if there are others that are multi threaded as well - perhaps CMS?
In people's experience, what is more efficient? Less cores thus long runtimes or more cores and shorter runtimes, per task? I see these Atlas tasks run about 2.5 gb of ram per WU. is it just a matter of not oversaturating the ram, as it were?
Right now I am running 4 threads per task, as per project settings and max number of CPUs.

Welcome back.

Atlas is currently the only multi threaded application here. The most efficient usage of CPUs would be running with a single thread as the multi thread tasks have at the beginning and at the end of a task a section that uses only a single thread anyway. So other CPU threads reserved for that task are idling during that time. Also multiple threads are doing their job calculations independently from an other so they will not finish at the same time when all jobs have been done.

But CPU threads are not the only thing to worry about, there is also the memory consumption. The amount of memory an Atlas task uses is calculated like this: 3000 MB + n * 900 MB where n is number of threads. So a single CPU Atlas task uses 3900 MB and two CPU task uses 4800 MB. So if you have the cores available but are limited by the memory more threads are the way to go.

If you are keen on the credits you get then single CPU tasks earn more because credit is calculated from the run time and not the CPU time.

Good luck with your experiments.
ID: 44402 · Report as offensive     Reply Quote
wolfman1360

Send message
Joined: 17 Feb 17
Posts: 42
Credit: 1,564,296
RAC: 1,475
Message 44403 - Posted: 27 Feb 2021, 4:41:02 UTC - in response to Message 44402.  

Hello,
Back crunching here a little after quite a long while, starting things off slow.
Currently have an duel Opteron 6128 and i7-3610qm.
They seem to be receiving a lot of Atlas tasks, which are multithreaded. I do not recall if there are others that are multi threaded as well - perhaps CMS?
In people's experience, what is more efficient? Less cores thus long runtimes or more cores and shorter runtimes, per task? I see these Atlas tasks run about 2.5 gb of ram per WU. is it just a matter of not oversaturating the ram, as it were?
Right now I am running 4 threads per task, as per project settings and max number of CPUs.

Welcome back.

Atlas is currently the only multi threaded application here. The most efficient usage of CPUs would be running with a single thread as the multi thread tasks have at the beginning and at the end of a task a section that uses only a single thread anyway. So other CPU threads reserved for that task are idling during that time. Also multiple threads are doing their job calculations independently from an other so they will not finish at the same time when all jobs have been done.

But CPU threads are not the only thing to worry about, there is also the memory consumption. The amount of memory an Atlas task uses is calculated like this: 3000 MB + n * 900 MB where n is number of threads. So a single CPU Atlas task uses 3900 MB and two CPU task uses 4800 MB. So if you have the cores available but are limited by the memory more threads are the way to go.

If you are keen on the credits you get then single CPU tasks earn more because credit is calculated from the run time and not the CPU time.

Good luck with your experiments.

Hi,
Yes, this Opteron only has 32 GB of memory, so a single task on a 16 core machine wouldn't go over so well.
I take it I should maybe try and slow down on the CMS tasks as well? I recall them taking a decent chunk of memory, too.
thanks
ID: 44403 · Report as offensive     Reply Quote
Harri Liljeroos
Avatar

Send message
Joined: 28 Sep 04
Posts: 536
Credit: 29,099,499
RAC: 13,075
Message 44406 - Posted: 27 Feb 2021, 10:46:23 UTC - in response to Message 44403.  

CMS tasks take about 2500 MB memory if I remember correctly. But they always use only 1 CPU core so not much you can do there. Their run time (if everything is working properly) is 12...18 hours. They run so that when 12 hours is full, they look for point where the currently running job is finished and finish the task there. If the task is not finished at 18 hours they will be terminated by Boinc.
ID: 44406 · Report as offensive     Reply Quote
wolfman1360

Send message
Joined: 17 Feb 17
Posts: 42
Credit: 1,564,296
RAC: 1,475
Message 44415 - Posted: 27 Feb 2021, 20:41:30 UTC - in response to Message 44406.  

CMS tasks take about 2500 MB memory if I remember correctly. But they always use only 1 CPU core so not much you can do there. Their run time (if everything is working properly) is 12...18 hours. They run so that when 12 hours is full, they look for point where the currently running job is finished and finish the task there. If the task is not finished at 18 hours they will be terminated by Boinc.

Thank you, that's a great help.
Will boinc automatically insure that ram doesn't get overused and wait for memory to free up before resuming tasks, or should I create an app_config file?
ID: 44415 · Report as offensive     Reply Quote
Harri Liljeroos
Avatar

Send message
Joined: 28 Sep 04
Posts: 536
Credit: 29,099,499
RAC: 13,075
Message 44416 - Posted: 27 Feb 2021, 23:38:46 UTC - in response to Message 44415.  

Boinc should wait for free memory if it is not available. You can check from your computing preferences how many % you have allowed Boinc to use of your memory.
ID: 44416 · Report as offensive     Reply Quote
wolfman1360

Send message
Joined: 17 Feb 17
Posts: 42
Credit: 1,564,296
RAC: 1,475
Message 44419 - Posted: 28 Feb 2021, 23:22:45 UTC

One final question because this is confusing me a little.
I've got a few Xeon e5's with 32-40 threads, but only 32 GB of ram.
I'm reading on the forum folks using app_configs to limit CPU and concurrent tasks. Concurrent tasks for subproject makes sense, currently you can only limit the number of actual jobs in progress and I'm assuming this is inclusive of all subprojects selected under preferences, , but is there any reason to limit CPU via this method as well as on the website?
Am I to assume the project is smart enough - if 6 4-core Atlas tasks ran on an e5-2680 that it would populate the rest of the machine with single threaded tasks, provided enough memory was available?
thanks
ID: 44419 · Report as offensive     Reply Quote
Harri Liljeroos
Avatar

Send message
Joined: 28 Sep 04
Posts: 536
Credit: 29,099,499
RAC: 13,075
Message 44425 - Posted: 1 Mar 2021, 21:18:09 UTC - in response to Message 44419.  

Sometimes it works like you hope and sometimes it doesn't. If you have more Atlas tasks in queue (above the 6 in you example) than your memory allows to run simultaneously Boinc may want to run the 7th Atlas if you have free CPU cores. Sometimes it may also run sixtrack if you have those downloaded. Only with app_config.xml you can always limit the concurrent Atlas tasks to 6 and run sixtrack or other subprojects in addition. Just experiment and see what happens.
ID: 44425 · Report as offensive     Reply Quote
Toby Broom
Volunteer moderator

Send message
Joined: 27 Sep 08
Posts: 670
Credit: 428,438,970
RAC: 208,499
Message 44427 - Posted: 2 Mar 2021, 19:38:37 UTC - in response to Message 44419.  

I use the app_config to limit my atlas tasks to 16 with 192 GB of ram, BOINC fills the rest with other tasks usually, unless there is a problem that there isn't enough task left from other projects or the deadline is tight for the ATLAS tasks.
ID: 44427 · Report as offensive     Reply Quote

Message boards : Number crunching : Optimal CPU usage?


©2021 CERN