Missing CPU core !

Message boards : Questions and problems : Missing CPU core !
Message board moderation

To post messages, you must log in.

AuthorMessage
jlhal

Send message
Joined: 20 Aug 12
Posts: 8
France
Message 45695 - Posted: 17 Sep 2012, 21:25:05 UTC

HI ! Did someone notice that on both Linux and Windows , since 7.0.34, 1 CPU is missing in the total count of active WUs?
For Windows I have 8 cores , 2 for GPUGRID (GTX590) and only 5 for WCG !
On Linux I have 6 cores, 2 for GPUGRID (GTX590) and only 3 for WCG !

On both OS the max nr of CPUs used is correct.
????

Lubuntu 12.10 AMD64, Boinc 7.2.14, Driver 310...14.8 , 2 x GTX 690 2GB
ID: 45695 · Report as offensive
BilBg
Avatar

Send message
Joined: 18 Jun 10
Posts: 73
Bulgaria
Message 45716 - Posted: 19 Sep 2012, 17:48:07 UTC - in response to Message 45695.  


Why do you think that GPUGRID will occupy/use a CPU core?
Do you really have enough CPU tasks on-board to utilize all your CPU cores?





- ALF - "Find out what you don't do well ..... then don't do it!" :)
ID: 45716 · Report as offensive
jlhal

Send message
Joined: 20 Aug 12
Posts: 8
France
Message 45788 - Posted: 25 Sep 2012, 18:03:05 UTC - in response to Message 45716.  


Why do you think that GPUGRID will occupy/use a CPU core?
Do you really have enough CPU tasks on-board to utilize all your CPU cores?



HI !
Sorry for the late response but I 've not been emailed about your answer...

Anyway, I have to give the following precisions , for my Windows system (the same applies to the Linux one with 6 cores total) :
My CPU is an AMD FX8150 with 8 cores.
My GPU is a GTX 590 : 2 GPUs
SWAN_SYNC is set to 0
I have enough WUs preloaded for work with WCG
If I want 6 cores for WCG ( 2 for GPUGRID), I used to set Max number of CPUs to (100/8)*6 = 75%
Now , to obtain 6 CPUs working for WCG, I have to set this to 87,5% , and Boinc tells me in the journal that I'm using a max of 7 CPUs which is correct according to 87,5% !
I just verified right now this : coming back to 75%, the number of active WCG tasks went down to 5 , instead of 6. Back again to 87,5 it went to 6 tasks active again .
GPUGRID uses actually:
0,491 of 1 CPU for GPU0
0,568 of 1 CPU for GPU1

If GPUGRID was sharing 1 CPU for 2 GPUs , I should have 7 tasks active for WCG
Looking at Windows task manager I can see that ALL CPUs are well busy .

Do you need more informations or are my explanations still not clear ?
What flags could be set in cc_config to help diagnose this ?
Regards and thanks for your time.





Lubuntu 12.10 AMD64, Boinc 7.2.14, Driver 310...14.8 , 2 x GTX 690 2GB
ID: 45788 · Report as offensive
BilBg
Avatar

Send message
Joined: 18 Jun 10
Posts: 73
Bulgaria
Message 45791 - Posted: 25 Sep 2012, 22:59:53 UTC - in response to Message 45788.  

If I want 6 cores for WCG ( 2 for GPUGRID) ...

Oh, now I see you mean "2 CPU cores free for GPUGRID"

By your explanations I think that BOINC automatically free one CPU core for 2 GPUGRID tasks.
(I don't run GPUGRID and don't know the exact values, you can calculate by yourself using info bellow)

Look in Tasks tab - Status column:
- does it say for the 2 GPUGRID tasks:
Running (0.50 CPUs + 1.00 NVIDIA)
Running (0.50 CPUs + 1.00 NVIDIA)

BOINC will add 0.50 + 0.50 and automatically free one CPU core
(taking 1 core from what you allow total for BOINC use)

The values '0.50 CPUs + 1.00 NVIDIA' are supplied by the project.
If you see some change in that it is not caused by BOINC version but by GPUGRID - maybe new app?





- ALF - "Find out what you don't do well ..... then don't do it!" :)
ID: 45791 · Report as offensive
jlhal

Send message
Joined: 20 Aug 12
Posts: 8
France
Message 45810 - Posted: 26 Sep 2012, 21:07:01 UTC - in response to Message 45791.  


By your explanations I think that BOINC automatically free one CPU core for 2 GPUGRID tasks.
...
Look in Tasks tab - Status column:
- does it say for the 2 GPUGRID tasks:
Running (0.50 CPUs + 1.00 NVIDIA)
Running (0.50 CPUs + 1.00 NVIDIA)

BOINC will add 0.50 + 0.50 and automatically free one CPU core
(taking 1 core from what you allow total for BOINC use)

The values '0.50 CPUs + 1.00 NVIDIA' are supplied by the project.
If you see some change in that it is not caused by BOINC version but by GPUGRID - maybe new app?


My understanding is that BOINC should allocate 1 CPU for 1 GPU, 2 for 2, 3 for 3 etc...
This is what's happening still now. 2 cpus are allocated, 1 for each GPU.
The problem is, according to me, that it allocates 2 cpus but counts only 1 is allocated , thus saying that 7 are used as a max...

ID: 45810 · Report as offensive
BilBg
Avatar

Send message
Joined: 18 Jun 10
Posts: 73
Bulgaria
Message 45811 - Posted: 26 Sep 2012, 22:41:42 UTC - in response to Message 45810.  

My understanding is that BOINC should allocate 1 CPU for 1 GPU, 2 for 2, 3 for 3 etc...

Your understanding is not correct, BOINC do not allocate/free any CPU core by default to support the GPU.

There is no point in that.
E.g. I use optimized SETI GPU app (MB6_win_x86_SSE3_OpenCL_ATi_HD5_r390) which uses in reality only 7% of my single core CPU (AMD Athlon(tm) 64 Processor 3500+)

In BOINC it shows:
Running (0.05 CPUs + 1.00 ATI GPUs)

Those '0.05 CPUs' is not real usage but just info (supplied in app_info.xml) to inform BOINC what app needs.
(if/since you don't use app_info.xml the values are supplied by the project/server)

With 0.05 CPUs 'reserved' for 1 GPU app I have to have 20 GPUs (20 GPU apps running) to make BOINC reserve just 1 core (20 * 0.05 = 1)
(if I have 'only' 19 GPUs BOINC will NOT reserve/free any core: 19 * 0.05 = 0.95 CPUs (it is not possible to free part of a core))

So answer the question:
what is shown in Tasks tab - Status column for one GPUGRID task:
Running (0.XX CPUs + 1.00 NVIDIA)

(what is the exact value for 0.XX)





- ALF - "Find out what you don't do well ..... then don't do it!" :)
ID: 45811 · Report as offensive
jlhal

Send message
Joined: 20 Aug 12
Posts: 8
France
Message 45825 - Posted: 27 Sep 2012, 21:12:10 UTC - in response to Message 45811.  



So answer the question:
what is shown in Tasks tab - Status column for one GPUGRID task:
Running (0.XX CPUs + 1.00 NVIDIA)

(what is the exact value for 0.XX)



Right now for 2 GPUGRID running tasks :

0,568 CPUs + 1 NVIDIA GPU (device 0)
0,568 CPUs + 1 NVIDIA GPU (device 1)

+ 6 cores running 6 active World Community Grid tasks (1 each)

ALL 8 cores are busy for crunching (75% max power set in preferences)!
So WCG using 6 cores I can reasonably conclude that 2 are used by GPUGRID !
If there was only 1 core used for both GPUs, what is the 8th core doing at 75% of its power ?

ID: 45825 · Report as offensive
BilBg
Avatar

Send message
Joined: 18 Jun 10
Posts: 73
Bulgaria
Message 45828 - Posted: 28 Sep 2012, 2:04:23 UTC - in response to Message 45825.  


So answer the question:
what is shown in Tasks tab - Status column for one GPUGRID task:
Running (0.XX CPUs + 1.00 NVIDIA)

(what is the exact value for 0.XX)

Right now for 2 GPUGRID running tasks :

0,568 CPUs + 1 NVIDIA GPU (device 0)
0,568 CPUs + 1 NVIDIA GPU (device 1)

2 * 0.568 = 1.136
so BOINC will automatically free one CPU core for 2 GPUGRID tasks
(it can't free the additional 0.136 of the next core, it's not possible to free part of a core)

'Free one CPU core' means 'no CPU task will be run on one of the available for BOINC CPU cores'
'available' means what you allow by 'On multiprocessors, use at most XX% of the processors'


+ 6 cores running 6 active World Community Grid tasks (1 each)

ALL 8 cores are busy for crunching (75% max power set in preferences)!

"busy for crunching" are 6 cores, the remaining 2 are 'free' to be used by any program (outside BOINC), it is just coincidence that GPU apps use part of the CPU time on these 2 cores.
GPU apps usually do not use CPU "for crunching", only to transfer GPU-code and data to/from the GPU memory.
(you have to ask on GPUGRID forums - on some projects there exist 'hybrid' apps that do some/most of the calculations on the GPU and some on the CPU)

There is no setting by the name "max power"
Where you set the preferences? On web page or locally?
Check again, probably it is set to 'use at most 87.5% of the processors' (which is OK, even 99% will free one core)
- you free one core by preferences (87.5%) (means one less CPU task will be run at all times, even if no GPU tasks exist)
- BOINC automatically free one additional core (2 * 0.568 = 1.136) when 2 GPUGRID tasks run (means one less CPU task)
So you end with 2 less CPU tasks (6 CPU tasks on 8 core CPU)


So WCG using 6 cores I can reasonably conclude that 2 are used by GPUGRID !

Depends what you mean by "used".
BOINC do not allocate/reserve any CPU core for a GPU app/task.
It just starts the GPU app no matter if there is a 'free' core.
How else any GPU app will run on a single core CPU?
(on a single core CPU system you can run e.g. 1 SETI CPU task + 2 SETI GPU tasks)


If there was only 1 core used for both GPUs, what is the 8th core doing at 75% of its power ?

'Feeding' the GPU probably.

Where did I say "1 core used for both GPUs"?
I say "BOINC automatically free one CPU core for 2 GPUGRID tasks" ('free' just means one less CPU task, nothing more)
(maybe my wording is not good, it have to be "when 2 GPUGRID tasks run")

In fact all cores are used (app 'jumps' from core to core as directed by OS)





- ALF - "Find out what you don't do well ..... then don't do it!" :)
ID: 45828 · Report as offensive

Message boards : Questions and problems : Missing CPU core !

Copyright © 2022 University of California. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.