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

Guo Yixuan culu.gyx at gmail.com
Fri Jun 15 15:53:40 UTC 2012


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?

Cheers,

Guo Yixuan



More information about the pkg-boinc-devel mailing list