I see a potential problem with this.  The request for work for other
devices should only occur if the project is  not overworked for those
devices.  Otherwise, you get a situation where a project does not have a
CUDA project, but requires more than its share of CPU time and with the
CUDA request gets a CPU work request, and can get an infinite negative LTD
for CPU.

jm7

Message: 4
Date: Mon, 21 Sep 2009 13:41:28 -0700
From: [email protected]
Subject: [boinc_cvs] r19123 - trunk/boinc/client
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=UTF-8

Author: davea
Date: 2009-09-21 13:41:28 -0700 (Mon, 21 Sep 2009)
New Revision: 19123

Modified:
   trunk/boinc/client/work_fetch.cpp
Log:
- work fetch tweak


Modified: trunk/boinc/client/work_fetch.cpp
===================================================================
--- trunk/boinc/client/work_fetch.cpp            2009-09-21 19:58:21 UTC
(rev 19122)
+++ trunk/boinc/client/work_fetch.cpp            2009-09-21 20:41:28 UTC
(rev 19123)
@@ -413,7 +413,14 @@
     p->cpu_pwf.backoff_time = cpu_save;
     p->cuda_pwf.backoff_time = cuda_save;
     p->ati_pwf.backoff_time = ati_save;
-    if (p == pbest) return;
+    if (p == pbest) {
+        // Ask for work for all devices w/ a shortfall.
+        // Otherwise we can have a situation where a GPU is idle,
+        // we ask only for GPU work, and the project never has any
+        //
+        work_fetch.set_shortfall_requests(pbest);
+        return;
+    }

     // if not, don't request any work
     //


jm7

_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to