Message boards : Questions and problems : Missing CPU core !
Message board moderation
Author | Message |
---|---|
Send message Joined: 20 Aug 12 Posts: 8 ![]() |
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 |
![]() Send message Joined: 18 Jun 10 Posts: 73 ![]() |
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? ![]() ![]() |
Send message Joined: 20 Aug 12 Posts: 8 ![]() |
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 |
![]() Send message Joined: 18 Jun 10 Posts: 73 ![]() |
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? ![]() ![]() |
Send message Joined: 20 Aug 12 Posts: 8 ![]() |
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... |
![]() Send message Joined: 18 Jun 10 Posts: 73 ![]() |
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) ![]() ![]() |
Send message Joined: 20 Aug 12 Posts: 8 ![]() |
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 ? |
![]() Send message Joined: 18 Jun 10 Posts: 73 ![]() |
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) "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) ![]() ![]() |
Copyright © 2025 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.