From 21347b6c4534fe20fa7df71f49ca7d89fa9f1e1b Mon Sep 17 00:00:00 2001 From: David Anderson Date: Sun, 17 Jul 2005 21:31:24 +0000 Subject: [PATCH] *** empty log message *** svn path=/trunk/boinc/; revision=6663 --- checkin_notes | 7 +++++++ client/cs_scheduler.C | 14 ++++++++++++-- doc/backend_programs.php | 1 + doc/boinc_news.inc | 3 ++- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/checkin_notes b/checkin_notes index d470574d5a..83d1a1c4fd 100755 --- a/checkin_notes +++ b/checkin_notes @@ -9222,3 +9222,10 @@ David 17 July 2005 make_work.C transitioner.C validator.C + +David 17 July 2005 + - scheduler bug fixes for non-CPU-intensive + (from John McLeod) + + client/ + cs_scheduler.C diff --git a/client/cs_scheduler.C b/client/cs_scheduler.C index ea1f2ff5ca..fb7f8bb5d7 100644 --- a/client/cs_scheduler.C +++ b/client/cs_scheduler.C @@ -530,10 +530,19 @@ int CLIENT_STATE::compute_work_requests() { p->work_request_urgency = WORK_FETCH_DONT_NEED; if (!p->contactable()) continue; - // ??? explain the following - // + // if the projects have been running in round robin without resort to EDF, then + // all projects will have a LT debt greater than + // -global_prefs.cpu_scheduling_period_minutes * 60 + // Therefore any project that has a LT debt greater than this + // is a candidate for more work. + // Also if the global need is immediate, we need to get work from + // someplace - anyplace that can be contacted, even if the LT debt + // is extremely negative. if ((p->long_term_debt < -global_prefs.cpu_scheduling_period_minutes * 60) && (overall_work_fetch_urgency != WORK_FETCH_NEED_IMMEDIATELY)) continue; + // if it is non cpu intensive and we have work, we don't need any more. + if (p->non_cpu_intensive && p->runnable()) continue; + int min_results = proj_min_results(p, prrs); double estimated_time_to_starvation = time_until_work_done(p, min_results-1, prrs); @@ -1016,6 +1025,7 @@ bool CLIENT_STATE::no_work_for_a_cpu() { for (i=0; i< results.size(); i++){ RESULT* rp = results[i]; if (!rp->runnable_soon()) continue; + if (rp->project->non_cpu_intensive) continue; count++; } return ncpus > count; diff --git a/doc/backend_programs.php b/doc/backend_programs.php index 8cb8ac4fa0..b7a2e9bcbc 100644 --- a/doc/backend_programs.php +++ b/doc/backend_programs.php @@ -27,6 +27,7 @@ list_item("-mod n i", ); list_end(); +echo "

Work generator

There is one work generator per application. diff --git a/doc/boinc_news.inc b/doc/boinc_news.inc index 0557273556..fb023b01b3 100644 --- a/doc/boinc_news.inc +++ b/doc/boinc_news.inc @@ -3,7 +3,8 @@ $project_news = array( array("July 11-12, 2005", - "The First Pangalactic BOINC Workshop was held at CERN, + "The First Pangalactic BOINC Workshop + was held at CERN, bringing together people from ClimatePrediction.net, Einstein@home, CERN, and BOINC. Slides and video of CPDN and E@h talks are available at