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.
