From 3f915e647f630a870fab81a43f750011cc11010d Mon Sep 17 00:00:00 2001 From: David Anderson Date: Tue, 17 Apr 2007 22:24:53 +0000 Subject: [PATCH] svn path=/trunk/boinc/; revision=12407 --- checkin_notes | 25 +++++++++++++++++++++++++ client/client_state.h | 6 +++++- client/cpu_sched.C | 12 ++++++------ client/sim.h | 7 ++++++- client/work_fetch.C | 15 +-------------- configure.ac | 33 --------------------------------- doc/boinc_news.php | 17 +++++++++++++++++ doc/build.php | 4 ++-- doc/dg.php | 11 +++++++++-- doc/project_cookbook.php | 5 +++-- html/inc/prefs.inc | 13 +++++++------ test/testbase.py | 2 +- 12 files changed, 82 insertions(+), 68 deletions(-) diff --git a/checkin_notes b/checkin_notes index 173f3b412a..549f96e263 100755 --- a/checkin_notes +++ b/checkin_notes @@ -3648,3 +3648,28 @@ David 17 Apr 2007 lib/ util.C + +David 17 Apr 2007 + - client: define work_buf_total as + max(1, work_buf_min + work_buf_additional). + Allow both work_buf_min and work_buf_additional to be zero. + - client: remove work_needed_secs() + + client/ + client_state.h + cpu_sched.C + sim.h + work_fetch.C + +David 17 Apr 2007 + - user web: better text for work-buf preferences; + defaults are 0 and 0.25. + - remove test_sanity.py stuff from configure.ac. + It's relevant only to the automated testing framework, + which no one uses except us. + + configure.ac + html/inc/ + prefs.inc + test/ + testbase.py diff --git a/client/client_state.h b/client/client_state.h index e9c0bf76bf..0a6a3ab650 100644 --- a/client/client_state.h +++ b/client/client_state.h @@ -273,6 +273,11 @@ public: inline double work_buf_additional() { return global_prefs.work_buf_additional_days *86400; } + inline double work_buf_total() { + double x = work_buf_min() + work_buf_additional(); + if (x < 1) x = 1; + return x; + } void request_enforce_schedule(const char*); void request_schedule_cpus(const char*); // Check for reschedule CPUs ASAP. Called when: @@ -449,7 +454,6 @@ public: double overall_cpu_frac(); double time_until_work_done(PROJECT*, int, double); bool compute_work_requests(); - double work_needed_secs(); void scale_duration_correction_factors(double); void generate_new_host_cpid(); void compute_nuploading_results(); diff --git a/client/cpu_sched.C b/client/cpu_sched.C index 63917a88eb..ae8e4b7ccd 100644 --- a/client/cpu_sched.C +++ b/client/cpu_sched.C @@ -1006,8 +1006,8 @@ void CLIENT_STATE::rr_simulation() { if (log_flags.rr_simulation) { msg_printf(0, MSG_INFO, - "[rr_sim] rr_sim start: work_buf_min %f rrs %f trs %f ncpus %d", - work_buf_min(), rrs, trs, ncpus + "[rr_sim] rr_sim start: work_buf_total %f rrs %f trs %f ncpus %d", + work_buf_total(), rrs, trs, ncpus ); } @@ -1048,17 +1048,17 @@ void CLIENT_STATE::rr_simulation() { // if (!p->active.size()) { double rsf = trs ? p->resource_share/trs : 1; - p->cpu_shortfall = (work_buf_min() + work_buf_additional()) * overall_cpu_frac() * ncpus * rsf; + p->cpu_shortfall = work_buf_total() * overall_cpu_frac() * ncpus * rsf; if (log_flags.rr_simulation) { msg_printf(p, MSG_INFO, - "[rr_sim] no results; shortfall %f wbm %f ocf %f rsf %f", - p->cpu_shortfall, work_buf_min(), overall_cpu_frac(), rsf + "[rr_sim] no results; shortfall %f wbt %f ocf %f rsf %f", + p->cpu_shortfall, work_buf_total(), overall_cpu_frac(), rsf ); } } } - double buf_end = now + work_buf_min() + work_buf_additional(); + double buf_end = now + work_buf_total(); // Simulation loop. Keep going until work done // diff --git a/client/sim.h b/client/sim.h index efcd296bf1..de23a39960 100644 --- a/client/sim.h +++ b/client/sim.h @@ -176,6 +176,12 @@ public: double work_buf_additional() { return global_prefs.work_buf_additional_days * 86400; } + inline double work_buf_total() { + double x = work_buf_min() + work_buf_additional(); + if (x < 1) x = 1; + return x; + } + void request_enforce_schedule(const char*); void request_schedule_cpus(const char*); @@ -229,7 +235,6 @@ public: double overall_cpu_frac(); double time_until_work_done(PROJECT*, int, double); bool compute_work_requests(); - double work_needed_secs(); void scale_duration_correction_factors(double); void generate_new_host_cpid(); void compute_nuploading_results(); diff --git a/client/work_fetch.C b/client/work_fetch.C index 03cd938cca..80a766797c 100644 --- a/client/work_fetch.C +++ b/client/work_fetch.C @@ -579,7 +579,7 @@ bool CLIENT_STATE::compute_work_requests() { // sanity check // - double x = (work_buf_additional() + work_buf_min())*ncpus; + double x = work_buf_total()*ncpus; if (pbest->work_request > x) { msg_printf(NULL, MSG_INTERNAL_ERROR, "Proposed work request %f bigger than max %f", @@ -610,19 +610,6 @@ bool CLIENT_STATE::compute_work_requests() { return false; } -double CLIENT_STATE::work_needed_secs() { - double total_work = 0; - for(unsigned int i=0; iproject->non_cpu_intensive) continue; - total_work += results[i]->estimated_cpu_time_remaining(); - } - double x = work_buf_min() * avg_proc_rate() - total_work; - if (x < 0) { - return 0; - } - return x; -} - // called when benchmarks change // void CLIENT_STATE::scale_duration_correction_factors(double factor) { diff --git a/configure.ac b/configure.ac index 2096d0da83..1e2cd462fe 100644 --- a/configure.ac +++ b/configure.ac @@ -691,36 +691,3 @@ AC_OUTPUT echo "--- Configuring BOINC AC_PACKAGE_VERSION (${build_state}) ---" echo "--- Build Components: (${configured_to_build}) ---" - -[ -true || $TOP_SOURCE_DIR/test/test_sanity.py || ( - cat <Desktopgrid.hu + has been created by the Computer and Automation Research Institute + (SZATAKI) of the Hungarian Academy of Sciences (MTA). + It provides information (and software downloads) for using + BOINC for desktop Grid computing." +), +array("April 16, 2007", + "BOINC is now using Trac, + an integrated software project management system. + In particular: + 1) the BOINC source code repository now uses Subversion; + 2) the BOINC bug database has been moved to Trac; + 3) documentation will be moved to a Wiki. + See the BOINC/Trac page. + " +), array("April 11, 2007", "The BBC documentary 'Meltdown', which highlights Climateprediction.net, diff --git a/doc/build.php b/doc/build.php index 65832d4e66..4960d986da 100644 --- a/doc/build.php +++ b/doc/build.php @@ -54,7 +54,7 @@ you don't need to build the Core client or BOINC Manager.
- MySQL 4.0+ or 4.1+ + MySQL 4.0 or higher
MySQL client X @@ -91,7 +91,7 @@ you don't need to build the Core client or BOINC Manager.
- WxWidgets 2.6.3 + WxWidgets 2.8.3

  • Configure with the --with-gtk --disable-shared options diff --git a/doc/dg.php b/doc/dg.php index 95e0c6e894..dc6b375983 100644 --- a/doc/dg.php +++ b/doc/dg.php @@ -13,7 +13,8 @@ echo " Desktop grid computing is a form of distributed computing in which an organization (such as a business) -uses its existing desktop PCs to handle long-running computational tasks. +uses its existing desktop PCs to handle its own +long-running computational tasks. This differs from volunteer computing in several ways:
    • The computing resources can be trusted; @@ -58,9 +59,15 @@ this can be done using Active Directories.

    -To ensure that outside PC can't participate in your project +To ensure that outside hosts can't participate in your project or access its files, configure your firewall to prevent HTTP access to your BOINC server. + +

    +For more information on desktop grid computing using BOINC, +and some useful pre-compiled software, visit +Desktopgrid.hu. + "; page_tail(true); diff --git a/doc/project_cookbook.php b/doc/project_cookbook.php index 1f81e389b8..595e0f4582 100644 --- a/doc/project_cookbook.php +++ b/doc/project_cookbook.php @@ -7,8 +7,9 @@ echo "

  • Install and configure all prerequisite software (follow the directions carefully). Make sure MySQL is configured and running. -
  • Get the BOINC -
  • Compile the BOINC software, say into HOME/boinc. +
  • Get the BOINC software, +say into HOME/boinc. +
  • Compile the BOINC server software
  • Run HOME/boinc/tools/make_project
  • Append the contents of projects/PROJECT/PROJECT.httpd.conf to httpd.conf and restart Apache. diff --git a/html/inc/prefs.inc b/html/inc/prefs.inc index 0d61fa9a0a..cb00b89332 100644 --- a/html/inc/prefs.inc +++ b/html/inc/prefs.inc @@ -69,13 +69,14 @@ define("HANGUP_IF_DIALED_DESC",
    (matters only if you have a modem, ISDN or VPN connection)" ); define("WORK_BUF_MIN_DAYS_DESC", - "Connect to network about every -
    (maximum 10 days) + "Computer is connected to the Internet about every +
    (Leave blank or 0 if always connected. +
    BOINC will try to maintain at least this much work.)
    " ); define("WORK_BUF_ADDITIONAL_DAYS_DESC", - "Cache enough work for an additional -
    (maximum 10 days; requires 5.10+ client) + "Maintain enough work for an additional +
    (Requires 5.10+ client.) " ); define("MAX_CPUS_DESC", "On multiprocessors, use at most"); @@ -392,8 +393,8 @@ function default_prefs_global() { $p->cpu_scheduling_period_minutes = 60; $p->confirm_before_connecting = false; $p->hangup_if_dialed = true; - $p->work_buf_min_days = .1; - $p->work_buf_additional_days = 1; + $p->work_buf_min_days = ""; + $p->work_buf_additional_days = 0.25; $p->max_cpus = 16; $p->cpu_usage_limit = 100; $p->disk_interval = 60; diff --git a/test/testbase.py b/test/testbase.py index 4111d77a6a..04dd251596 100644 --- a/test/testbase.py +++ b/test/testbase.py @@ -714,7 +714,7 @@ class Proxy: # check if child process died (pid,status) = os.waitpid(self.pid, os.WNOHANG) if pid: - fatal_error("testproxy failed") + fatal_error("testproxy failed; see testproxy.log for details") self.pid = 0 else: atexit.register(self.stop)