BOINC and priorities set in /etc/init.d/boinc-client

Guo Yixuan culu.gyx at gmail.com
Fri Jun 15 17:32:27 UTC 2012


On 06/15/2012 11:53 PM, Guo Yixuan wrote:
> Hi,
> 
> On 06/05/2012 09:54 PM, Steffen Möller wrote:
>> Hello,
>>
>> I was contacted by the Einstein at Home developers, who experience more
>> than they like sudden ends of scientific apps. This they charge
>> on our renice-+19-ing of the boinc-client, which would not be
>> executed sufficiently often to ping a hartbeat to the apps (every 30
>> seconds) besides its other duties like downloading files and
>> surviving slow DNS etc..
> 
> I've also seen many times of "No heartbeat from core client for 30 sec -
> exiting", which sometimes leads to computation error.
> 
>> Another issue of concern for them is a low CPU priority for
>> GPU tasks. This is a bit ironic, but if the CPU is not available
>> for the GPU when the card needs it, i.e. when it runs out of data
>> or sends back results, then performance suffers badly. So, even
>> when the CPU is not needed much, it should not fight for priorities
>> when it is needed.
>>
>> I will now exclude GPU children of boinc from being niced down or
>> otherwise be touched by the init script. And also I will set the
>> boinc-client to a nice level of 10 instead of 19.
>>
>> Please raise your objections, if any.
> 
> I tried to make changes like this:
> 
> diff -ur debian/boinc-client.init /etc/init.d/boinc-client
> --- debian/boinc-client.init	2012-05-25 14:27:08.000000000 +0800
> +++ /etc/init.d/boinc-client	2012-06-06 10:25:36.000000000 +0800
> @@ -181,11 +181,11 @@
>      if [ ! -x "`which chrt 2>/dev/null`" ]; then
>        log_progress_msg "chrt not found"
>      else
> -      (chrt_many --idle 0 19 $pid $children >/dev/null \
> +      (chrt_many --idle 0 9 $pid $children >/dev/null \
>          && log_progress_msg "idleprio") || \
> -      (chrt_many --batch 0 19 $pid $children >/dev/null \
> +      (chrt_many --batch 0 10 $pid $children >/dev/null \
>          && log_progress_msg "batch") || \
> -      (chrt_many --other 0 19 $pid $children >/dev/null \
> +      (chrt_many --other 0 11 $pid $children >/dev/null \
>          && log_progress_msg "normal") || \
>        log_progress_msg "chrt failed"
>      fi
> 
> ---
> 
> After "invoke-rc.d boinc-client start", I checked nice value with top,
> and it's still 19. After an "invoke-rc.d boinc-client schedule", nice
> value changed to 9. Maybe this is because we call schedule() in start()
> before boinc-client fork it children?

Oh, I just misunderstand the problem ... you were talking about
boinc-client, not those apps.

So this is another problem ...

Guo Yixuan



More information about the pkg-boinc-devel mailing list