From 1b9133b868712dc5b59e0ca5ed2c507f958aaf45 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Mon, 4 Apr 2011 11:45:44 +0000 Subject: [PATCH] - scheduler: don't send unboundedly many assigned jobs - Makefile: don't include unnecessary files svn path=/trunk/boinc/; revision=23315 --- Makefile.incl | 2 - checkin_notes | 162 +++++++++++++++++++++-------------------- doc/addon_data.php | 8 +- sched/sched_assign.cpp | 1 + 4 files changed, 90 insertions(+), 83 deletions(-) diff --git a/Makefile.incl b/Makefile.incl index bd977826e3..51067e7c99 100644 --- a/Makefile.incl +++ b/Makefile.incl @@ -25,8 +25,6 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/tools \ -I$(top_srcdir)/sched \ -I$(top_srcdir)/lib/mac \ - -I$(top_srcdir)/coprocs/NVIDIA/include \ - -I$(top_srcdir)/coprocs/OpenCL/include \ $(PTHREAD_CFLAGS) AM_CFLAGS = diff --git a/checkin_notes b/checkin_notes index 877ee9c915..047f037eb5 100644 --- a/checkin_notes +++ b/checkin_notes @@ -1763,69 +1763,69 @@ Charlie 24 Mar 2011 project.pbxproj David 24 Mar 2011 - - client: generalize the GPU framework so that - - new GPU types can be added easily - - users can specify GPUs in cc_config.xml, - referred to by app_info.xml, - and they will be scheduled by BOINC - and passed --device N options - Note: the parsing of cc_config.xml is not done yet. - - RPC protocols (account manager and scheduler) - can now specify GPU types in separate elements - rather than embedding them in tag names - e.g. NVIDIA rather than - - client: in account manager replies, parse elements of the form - NAME - indicating the GPUs of type NAME should not be used. - This allows account managers to control GPU types - not hardwired into the client. - Note: and will continue to be supported. - - scheduler RPC reply: add - NAME - (NAME = GPU name) - to indicate that the project has no jobs for the indicated GPU type. - etc. are still supported - - client/lib: remove set_debts() GUI RPC - - client/scheduler RPC - remove etc. (superceded by no_app) - Exception: elements in sched request - still have and . - Fix this later. + - client: generalize the GPU framework so that + - new GPU types can be added easily + - users can specify GPUs in cc_config.xml, + referred to by app_info.xml, + and they will be scheduled by BOINC + and passed --device N options + Note: the parsing of cc_config.xml is not done yet. + - RPC protocols (account manager and scheduler) + can now specify GPU types in separate elements + rather than embedding them in tag names + e.g. NVIDIA rather than + - client: in account manager replies, parse elements of the form + NAME + indicating the GPUs of type NAME should not be used. + This allows account managers to control GPU types + not hardwired into the client. + Note: and will continue to be supported. + - scheduler RPC reply: add + NAME + (NAME = GPU name) + to indicate that the project has no jobs for the indicated GPU type. + etc. are still supported + - client/lib: remove set_debts() GUI RPC + - client/scheduler RPC + remove etc. (superceded by no_app) + Exception: elements in sched request + still have and . + Fix this later. - Implementation notes: - - client/lib: change "CUDA" to "NVIDIA" in type/variable names, and in XML - Continue to recognize "CUDA" for compatibility - - host_info.coprocs no longer used within the client; - use a global var (COPROCS coprocs) instead. - COPROCS now has an array of COPROCs; - GPUs types are identified by the array index. - Index zero means CPU. - - a bunch of other resource-specific structs (like RSC_WORK_FETCH) - are now stored in arrays, with same indices as COPROCS - (i.e. index 0 is CPU) - - COPROCS still has COPROC_NVIDIA and COPROC_ATI structs to hold vendor-specific info - - APP_VERSION now has a struct GPU_USAGE to describe its GPU usage + Implementation notes: + - client/lib: change "CUDA" to "NVIDIA" in type/variable names, and in XML + Continue to recognize "CUDA" for compatibility + - host_info.coprocs no longer used within the client; + use a global var (COPROCS coprocs) instead. + COPROCS now has an array of COPROCs; + GPUs types are identified by the array index. + Index zero means CPU. + - a bunch of other resource-specific structs (like RSC_WORK_FETCH) + are now stored in arrays, with same indices as COPROCS + (i.e. index 0 is CPU) + - COPROCS still has COPROC_NVIDIA and COPROC_ATI structs to hold vendor-specific info + - APP_VERSION now has a struct GPU_USAGE to describe its GPU usage - client/ - acct_mgr.cpp,h - app_start.cpp - client_state.cpp,h - client_types.cpp,h - coproc_detect.cpp - cpu_sched.cpp - cs_account.cpp - cs_prefs.cpp - cs_scheduler.cpp - cs_statefile.cpp - gui_rpc_server_ops.cpp - rr_sim.cpp - scheduler_op.cpp.h - work_fetch.cpp,h - lib/ - coproc.h - hostinfo.cpp,h - win_build/ - boinc_cli.vcproj + client/ + acct_mgr.cpp,h + app_start.cpp + client_state.cpp,h + client_types.cpp,h + coproc_detect.cpp + cpu_sched.cpp + cs_account.cpp + cs_prefs.cpp + cs_scheduler.cpp + cs_statefile.cpp + gui_rpc_server_ops.cpp + rr_sim.cpp + scheduler_op.cpp.h + work_fetch.cpp,h + lib/ + coproc.h + hostinfo.cpp,h + win_build/ + boinc_cli.vcproj Charlie 25 Mar 2011 - client: Temporarily work around compile breaks introduced by the changes @@ -1833,17 +1833,17 @@ Charlie 25 Mar 2011 NOTE to David: please look for "//TODO: David, please fix" in these files and fix as appropriate. - client/ - app_start.cpp + client/ + app_start.cpp boinc_cmd.cpp David 25 Mar 2011 - - manager: fix crashing bug when notices (or other text parsed by XML_PARSER) - contain non-ASCII characters. - Rom: please port to 6.12 + - manager: fix crashing bug when notices (or other text parsed by XML_PARSER) + contain non-ASCII characters. + Rom: please port to 6.12 - lib/ - parse.cpp + lib/ + parse.cpp David 25 Mar 2011 - client: Unix compile fixes @@ -1862,10 +1862,10 @@ Charlie 25 Mar 2011 coproc.cpp, .h David 25 Mar 2011 - - manager: fix the above to detect premature EOF correctly + - manager: fix the above to detect premature EOF correctly - lib/ - parse.cpp + lib/ + parse.cpp David 25 Mar 2011 - scheduler: compile fixes @@ -2015,12 +2015,12 @@ Rom 31 Mar 2011 procinfo.cpp Charlie 31 Mar 2011 - - Fix Win build breaks caused by renaming of directory coprocs/cuda/ - to coprocs/NVIDIA/. - - Eliminate redundant cl.h and clpatform.h in lib/ directory because - Rom has added them to new coprocs/OpenCL/include/ directory. - NOTE: It is risky to have multiple copies of the same file in the same - source tree, as they can easily get out of sync. + - Fix Win build breaks caused by renaming of directory coprocs/cuda/ + to coprocs/NVIDIA/. + - Eliminate redundant cl.h and clpatform.h in lib/ directory because + Rom has added them to new coprocs/OpenCL/include/ directory. + NOTE: It is risky to have multiple copies of the same file in the same + source tree, as they can easily get out of sync. Makefile.incl lib/ @@ -2093,3 +2093,11 @@ David 1 Apr 2011 lib/ coproc.h + +David 4 Apr 2011 + - scheduler: don't send unboundedly many assigned jobs + - Makefile: don't include unnecessary files + + sched/ + sched_assign.cpp + Makefile.incl diff --git a/doc/addon_data.php b/doc/addon_data.php index c5e87698d7..3d309658cb 100644 --- a/doc/addon_data.php +++ b/doc/addon_data.php @@ -518,14 +518,14 @@ array('boinc_server_status.zip', ); $web = array( -array('http://download.conmunix.net/pub/boinc_lcs/boinc_lcs_3.0.tar.gz', +array('http://dl.onext.de/pub/boinc_lcs/boinc_lcs_latest.tar.gz', 'Boinc LCS', - '3.0 final', + '3.1', 'Shows the current state and other information from an unlimited number of BOINC clients connected to the Internet.', - 'http://www.conmunix.net/boinc-lcs', + 'http://www.onenext.de/', 'Apache, PHP', 'Boinc LCS is a free PHP based script, that allows you to monitor the current state (and other information) from each of your connected BOINC clients. It runs on a simple webserver and is platform independent. Boinc LCS is released under the GNU/GPL license. You can modify and redistribute or just use it!', - '1210049520' + '1301891920' ), array('b-sig.zip', 'Forum signature showing jobs in progress', diff --git a/sched/sched_assign.cpp b/sched/sched_assign.cpp index 254fbe5207..4b5417d7ad 100644 --- a/sched/sched_assign.cpp +++ b/sched/sched_assign.cpp @@ -123,6 +123,7 @@ bool send_assigned_jobs() { bool sent_something = false; for (int i=0; inassignments; i++) { + if (!work_needed(false)) break; ASSIGNMENT& asg = ssp->assignments[i]; if (config.debug_assignment) {