One task using 14 cores and only 36% +/- of that total cpu power

Message boards : Number crunching : One task using 14 cores and only 36% +/- of that total cpu power

To post messages, you must log in.

AuthorMessage
Profile Greg_BE
Avatar

Send message
Joined: 30 May 06
Posts: 5691
Credit: 5,859,226
RAC: 0
Message 102280 - Posted: 27 Jul 2021, 18:56:51 UTC

I have set R@H for 14 cores out of 16 to allow for 2 gpu's.
Now I have 14 cores tied up on one task group (pf2021...) and it is barely using 36% of those cpu's. I had 14 cores set up to let the project work on 14 single core tasks at one time leaving the two cpu's free for GPU control.

So why does it need 14 cores and then only uses 36% +- of those total cores?
That seems like a waste of computing power.

How does 14 cores on one task differ from say 7 cores on one task?
Any completion speed difference?
I have other projects that need cores as well, so why does this task series hog all my available cores?
ID: 102280 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Jim1348

Send message
Joined: 19 Jan 06
Posts: 881
Credit: 52,257,545
RAC: 0
Message 102281 - Posted: 27 Jul 2021, 19:36:38 UTC - in response to Message 102280.  

Rosetta 4.20 uses only one virtual core per work unit. So 36% means that no more than six work units are running, depending on how much your GPUs take.
And your task list shows only eight work units in progress.
https://boinc.bakerlab.org/rosetta/results.php?hostid=3433065

Do you have a limit on % of CPUs set in the BOINC manager?
ID: 102281 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Greg_BE
Avatar

Send message
Joined: 30 May 06
Posts: 5691
Credit: 5,859,226
RAC: 0
Message 102282 - Posted: 27 Jul 2021, 22:54:59 UTC - in response to Message 102281.  
Last modified: 27 Jul 2021, 22:57:50 UTC

The only limitation is a app_config script limiting R@H to 14 processors.
The preferences are set to 100%
Here is what my screen looks like :
https://drive.google.com/file/d/1ArrUzlBEeh1XHqIf9tjHEyQAg0_6pTYd/view?usp=sharing
ID: 102282 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Greg_BE
Avatar

Send message
Joined: 30 May 06
Posts: 5691
Credit: 5,859,226
RAC: 0
Message 102283 - Posted: 27 Jul 2021, 22:59:40 UTC - in response to Message 102282.  
Last modified: 27 Jul 2021, 23:00:49 UTC

The only limitation is a app_config script limiting R@H to 14 processors.
The preferences are set to 100%
Here is what my screen looks like :
https://drive.google.com/file/d/1ArrUzlBEeh1XHqIf9tjHEyQAg0_6pTYd/view?usp=sharing


Each of these tasks takes around 9 hours to complete.
My system runs 16 hours a day.
I'll probably have to abort these tasks or remove the app_config or something, because this is not working correctly.

This is the app_config
<?xml version="1.0"?>

-<app_config>


-<app>

<name>rosetta</name>

<max_concurrent>14</max_concurrent>

</app>


-<app_version>

<app_name>rosetta</app_name>

<avg_ncpus>14</avg_ncpus>

<cmdline>--nthreads 14</cmdline>

</app_version>

</app_config>

Maybe I did something wrong here?
ID: 102283 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Jim1348

Send message
Joined: 19 Jan 06
Posts: 881
Credit: 52,257,545
RAC: 0
Message 102284 - Posted: 27 Jul 2021, 23:09:00 UTC - in response to Message 102283.  


-<app_version>

<app_name>rosetta</app_name>

<avg_ncpus>14</avg_ncpus>

<cmdline>--nthreads 14</cmdline>

</app_version>

</app_config>

Maybe I did something wrong here?

OK, now I see the problem. Get rid of that section. You are telling BOINC to use 14 threads on each Rosetta work unit.
ID: 102284 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Grant (SSSF)

Send message
Joined: 28 Mar 20
Posts: 1679
Credit: 17,801,903
RAC: 22,703
Message 102286 - Posted: 28 Jul 2021, 5:08:58 UTC - in response to Message 102280.  
Last modified: 28 Jul 2021, 5:19:19 UTC

How does 14 cores on one task differ from say 7 cores on one task?
Why would you make it do that?
1 Task, one core/thread.
The application isn't written to make use of multiple cores/threads for a single Task.


Any completion speed difference?
Rosetta Tasks run for a set time period.
The default is 8 hours.


As Jim1348 said, all you need in your app_config.xml is
<app_config]
   <app>
      <name>rosetta</name>
      <max_concurrent>14</max_concurrent>
   </app>
<app_config>

Make sure there are no stray characters in there (what you pasted has a couple of leading - in there).

It would be worth doing the same for your other projects as well so none of them try to use all CPU cores/threads on CPU work for that project, when 2 of them are needed to support your GPUs.
Grant
Darwin NT
ID: 102286 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Greg_BE
Avatar

Send message
Joined: 30 May 06
Posts: 5691
Credit: 5,859,226
RAC: 0
Message 102287 - Posted: 28 Jul 2021, 6:45:12 UTC - in response to Message 102286.  
Last modified: 28 Jul 2021, 6:48:23 UTC

How does 14 cores on one task differ from say 7 cores on one task?
Why would you make it do that?
1 Task, one core/thread.
The application isn't written to make use of multiple cores/threads for a single Task.


Any completion speed difference?
Rosetta Tasks run for a set time period.
The default is 8 hours.


As Jim1348 said, all you need in your app_config.xml is
<app_config]
   <app>
      <name>rosetta</name>
      <max_concurrent>14</max_concurrent>
   </app>
<app_config>

Make sure there are no stray characters in there (what you pasted has a couple of leading - in there).

It would be worth doing the same for your other projects as well so none of them try to use all CPU cores/threads on CPU work for that project, when 2 of them are needed to support your GPUs.


Thanks guys, I don't really understand perfect all the code of app_config so I just followed what was posted in the BOINC forums.

The other projects don't need app_config. It was just to limit the total cores rosetta was using because it was taking away from the two cores controlling the GPU's for the other projects.

Thanks
ID: 102287 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Greg_BE
Avatar

Send message
Joined: 30 May 06
Posts: 5691
Credit: 5,859,226
RAC: 0
Message 102288 - Posted: 28 Jul 2021, 6:55:58 UTC

I made the changes you said and restarted the computer, but Rosetta still wants to use 14 cores.
Is that because it started that way?
I'm going to abort the tasks that started and ran only 30 mins to get rid of this problem.
Start fresh after it runs the one that is at 3.5 hours run time.
ID: 102288 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Grant (SSSF)

Send message
Joined: 28 Mar 20
Posts: 1679
Credit: 17,801,903
RAC: 22,703
Message 102290 - Posted: 28 Jul 2021, 8:53:32 UTC - in response to Message 102288.  
Last modified: 28 Jul 2021, 9:03:40 UTC

The other projects don't need app_config. It was just to limit the total cores rosetta was using because it was taking away from the two cores controlling the GPU's for the other projects.
If the other projects also do CPU work (and you have your account set to allow it), then you'd need to also limit the number of cores/threads they can use so as not to impact on the GPU support.
If they don't do any CPU work, then no it's not necessary for them.



I made the changes you said and restarted the computer, but Rosetta still wants to use 14 cores.
Because you have set it to use 14 cores.
Which (i thought) is what you wanted. 2 cores left unused to support the GPUs, 14 cores available for Rosetta to use (depending of course on your Resource share settings and other projects needs).

The number of cores that will actually used by Rosetta at any given time will vary depending on the amount of work done for Rosetta and you other projects as BOINC balances out work done with work owed between projects to meet your Resource share settings.

Depending on your Resource share settings, and if Rosetta were the only project to use the CPU, and all the other projects are GPU only, then it would be possible for periods where Rosetta will only use a few CPU cores & the rest will go unused as your GPU resources are limited & spread over multiple projects. So it will do less Rosetta work while it tries to sort out the debt between the GPU only projects in order to meet your Resource share settings. If Rosetta drops behind your Resource share setting, then more CPU cores will be used to do work for Rosetta to make up for that debt.
Grant
Darwin NT
ID: 102290 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Greg_BE
Avatar

Send message
Joined: 30 May 06
Posts: 5691
Credit: 5,859,226
RAC: 0
Message 102298 - Posted: 28 Jul 2021, 19:09:26 UTC - in response to Message 102290.  

Grant,
With the correction in place things are the way I want them.
14 individual tasks running, not 1 task with 14 cores like was happening.
I guess since BOINC started the other tasks with 14 cores, it could not go back to the old way of a single core.
I've been gone 11.5 hours so the two old tasks with 14 cores have finally finished and reported.

I run LHC which has its own web preferences for how many cores it takes. ATLAS likes only 4 cores, so in the project preferences it is set to 4 cores. I do see something interesting, WCG is using a core in addition to the 14 cores of Roesetta, which leaves 1 core for GPU management.

These are the only CPU projects in addition to FAH running in light mode on GPU only.
For GPU I run Einstein, Amicable and Prime Grid.
ID: 102298 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote

Message boards : Number crunching : One task using 14 cores and only 36% +/- of that total cpu power



©2024 University of Washington
https://www.bakerlab.org