diff --git a/checkin_notes b/checkin_notes index e1f8883e66..49220cfc07 100755 --- a/checkin_notes +++ b/checkin_notes @@ -9468,3 +9468,16 @@ David 29 Aug 2006 net_stats.C,h lib/ util.C,h + +David 29 Aug 2006 + core client: + - replace have_tentative_project variable with a function + - log message for project shortfall in no-result case + + client/ + client_state.C,h + client_types.C + cpu_sched.C + cs_account.C + cs_scheduler.C + scheduler_op.C diff --git a/client/client_state.C b/client/client_state.C index 17fc10f255..a44874986d 100644 --- a/client/client_state.C +++ b/client/client_state.C @@ -105,7 +105,6 @@ CLIENT_STATE::CLIENT_STATE() { must_schedule_cpus = true; must_enforce_cpu_schedule = true; no_gui_rpc = false; - have_tentative_project = false; new_version_check_time = 0; detach_console = false; #ifdef SANDBOX @@ -1410,6 +1409,15 @@ double calculate_exponential_backoff( int n, double MIN, double MAX) { return rand_range(MIN, rmax); } +bool CLIENT_STATE::have_tentative_project() { + unsigned int i; + for (i=0; itentative) return true; + } + return false; +} + bool CLIENT_STATE::have_nontentative_project() { unsigned int i; for (i=0; i %f, ratio %f", + if (log_flags.cpu_sched_debug || log_flags.work_fetch_debug) { + msg_printf(this, MSG_INFO, + "duration correction factor: %f => %f, ratio %f", old_dcf, duration_correction_factor, ratio ); } diff --git a/client/cpu_sched.C b/client/cpu_sched.C index 639031523f..2379691a7e 100644 --- a/client/cpu_sched.C +++ b/client/cpu_sched.C @@ -804,11 +804,18 @@ bool CLIENT_STATE::rr_simulation() { for (i=0; iset_rrsim_proc_rate(rrs); - // if there are no results for a project, the shortfall is its entire share. + // if there are no results for a project, + // the shortfall is its entire share. // if (!p->active.size()) { double rsf = rrs ? p->resource_share/rrs : 1; p->cpu_shortfall = work_buf_min() * overall_cpu_frac() * ncpus * rsf; + if (log_flags.rr_simulation) { + msg_printf(NULL, MSG_INFO, + "no results for %s; shortfall %f wbm %f ocf %f rsf %f", + p->cpu_shortfall, work_buf_min(), overall_cpu_frac(), rsf + ); + } } } diff --git a/client/cs_account.C b/client/cs_account.C index e7adc47f92..cef0d172e5 100644 --- a/client/cs_account.C +++ b/client/cs_account.C @@ -430,7 +430,6 @@ int CLIENT_STATE::add_project( project->attached_via_acct_mgr = attached_via_acct_mgr; project->tentative = true; - gstate.have_tentative_project = true; retval = project->write_account_file(); if (retval) return retval; @@ -463,7 +462,6 @@ int CLIENT_STATE::add_project( // void PROJECT::attach_failed(int error_num) { gstate.project_attach.error_num = error_num; - gstate.have_tentative_project = false; switch(error_num){ case ERR_ATTACH_FAIL_INIT: msg_printf(this, MSG_ERROR, diff --git a/client/cs_scheduler.C b/client/cs_scheduler.C index 1ee2dcfc60..2dfd82f579 100644 --- a/client/cs_scheduler.C +++ b/client/cs_scheduler.C @@ -740,7 +740,7 @@ bool CLIENT_STATE::scheduler_rpc_poll() { // check only every 5 sec, unless there's a tentative (new) project // - if (!have_tentative_project && gstate.now - last_time < 5.0) return false; + if (!have_tentative_project() && gstate.now - last_time < 5.0) return false; last_time = gstate.now; switch(scheduler_op->state) { diff --git a/client/scheduler_op.C b/client/scheduler_op.C index 6d4b5d650f..bfd38f2766 100644 --- a/client/scheduler_op.C +++ b/client/scheduler_op.C @@ -491,7 +491,6 @@ bool SCHEDULER_OP::poll() { cur_proj->attach_failed(ERR_ATTACH_FAIL_SERVER_ERROR); } else { cur_proj->tentative = false; - gstate.have_tentative_project = false; retval = cur_proj->write_account_file(); if (retval) { cur_proj->attach_failed(ERR_ATTACH_FAIL_FILE_WRITE); diff --git a/doc/acct_mgrs.php b/doc/acct_mgrs.php index 5ea371e1bf..48707bf582 100644 --- a/doc/acct_mgrs.php +++ b/doc/acct_mgrs.php @@ -3,17 +3,96 @@ require_once("docutil.php"); page_head("Account managers"); +$acct_mgrs = array( + array( + "The BOINCStats Account Manager", + "http://bam.boincstats.com", + "(BAM!)" + ), + array( + "GridRepublic", + "http://gridrepublic.org", + "" + ), +); + echo " -An account manager is a web site that -makes it easy to find and join BOINC projects. -The way this works is described here. -

-Available account managers: +An account manager is a web site that simplifies +participating in BOINC, especially if you are new to BOINC, +or if you have several computers, +participate in several projects, or like to learn about new projects. +The account manager concept was conceived by +GridRepublic, +and developed jointly by GridRepublic and BOINC. +The following account managers are available:

    -
  • The BOINCStats Account Manager - (BAM!) +"; +shuffle($acct_mgrs); +foreach($acct_mgrs as $am) { + $name = $am[0]; + $url = $am[1]; + $text = $am[2]; + + echo "
  • $name $text\n"; +} +echo "
-Other account managers are currently under development, +

+

Why use an account manager?

+ + + + + + + + + + + + + + + + + + + + + + +
With account manager + Without account manager +
+ See all BOINC projects, old and new, + listed and described at the account manager. + + Find BOINC projects by word-of-mouth + or using a search engine. +
+ Attach to a project with a mouse click. + If you have multiple computers, + all of them will be attached. + + Attach to a project by bringing up the 'Attach Project Wizard' + in the BOINC Manager, and entering the URL and + your email address and password. + You must do this separately at each or your computers. +
+ Change your account details (name, email address, password) + in one web page, at the account manager. + + Change your account details on each project web site, separately. +
+ Set resource shares for all projects in one web page, + at the account manager. + + Set resource shares at each project web site, separately. +
+ Create/join/quit teams in one web page, at the account manager. + + Create/join/quit teams at each project web site, separately. +
"; page_tail(); ?> diff --git a/doc/boinc_news.inc b/doc/boinc_news.inc index 94d194848b..fa0ca07c8d 100644 --- a/doc/boinc_news.inc +++ b/doc/boinc_news.inc @@ -1,6 +1,11 @@ GridRepublic, + a BOINC account manager, recently moved into beta test. + It was written up by CNET." +), array("August 20, 2006", "BOINC and SETI@home are featured in an @@ -17,7 +22,7 @@ array("August 15, 2006", "A BBC Radio program on 'Citizen Science' - including a segment on volunteer computing and BOINC - will air tomorrow, 16 Aug 2006, 9 PM British Time. - It will also be avalable + It will also be available online. " ), @@ -151,7 +156,7 @@ array("June 14, 2006", " ), array("June 10, 2006", - "The BOINC UK Newsletter Circuler (bunc) has released its June 2006 edition, + "The BOINC UK Newsletter Circular (bunc) has released its June 2006 edition, featuring an interview with David Anderson." ), array("June 7, 2006", diff --git a/doc/client_msgs.php b/doc/client_msgs.php index 9b48409aeb..1cdef01f10 100644 --- a/doc/client_msgs.php +++ b/doc/client_msgs.php @@ -10,7 +10,7 @@ This file has the following format: [ N ] - [ 0|1 ] + [ 0|1 ] [ N ] diff --git a/doc/contact.php b/doc/contact.php index c078447965..ef26dd719e 100644 --- a/doc/contact.php +++ b/doc/contact.php @@ -8,9 +8,9 @@ The BOINC project is based at the at the University of California, Berkeley. Project staff are:
-
Dr. David P. Anderson +
Dr. David P. Anderson
-Director, architect and developer. Contact him at davea at ssl.berkeley.edu. +Director and architect. Contact him at davea at ssl.berkeley.edu.
Rom Walton
diff --git a/doc/energy.php b/doc/energy.php index 7ba77028d8..fccacfc7be 100644 --- a/doc/energy.php +++ b/doc/energy.php @@ -1,7 +1,29 @@ CPU heat + +

+When BOINC applications are running on a computer, +its CPU chip produces more heat than when it is idle. +The computer's heat sinks and fans are normally able to +dissipate this heat sufficiently. +However, if the fans become clogged with dust, +they may not be able to cool the CPU adequately, +and this can lead to premature failure of the CPU or motherboard. + +

+To deal with this problem, we recommend that you: +

    +
  • Clean your computer's fans and heat sinks periodically. +
  • Install a utility that monitors CPU temperature, +such as Motherboard Monitor or +i8kfan +(for Dell laptops). +
  • If needed, +set your general preferences to throttle CPU usage. +

The energy cost and environmental impact of running BOINC

A computer running BOINC uses more energy than an idle computer. @@ -31,8 +53,8 @@ list_item_array(array("Active", "150 watts", "110 kWh", "$8.80")); list_end(); echo " Under these assumptions, running BOINC costs about $3/month -relative to leaving your computer on but idle, -and about $8.80/month relative to leaving it off all the time. +more than leaving your computer on but idle, +and about $8.80/month more than leaving it off all the time.

There may also be an environmental cost. diff --git a/doc/index.php b/doc/index.php index b949be3e7f..2cb6c947ee 100644 --- a/doc/index.php +++ b/doc/index.php @@ -6,9 +6,12 @@ function show_participant() { $i = rand(0, 99); $j = $i+1; echo " + +  Featured volunteer +

-
+
"; include("piecharts/$i.html"); echo " @@ -65,6 +68,11 @@ function show_participate() {
  • Download and run BOINC software
  • Enter the project URLs, your email address, and password. +

    + Or, for simplicity and convenience, + use an account manager + such as GridRepublic + or BAM!.

    Details | Download @@ -153,8 +161,9 @@ echo "

    Berkeley Open Infrastructure for Network Computing

    + Open-source software for -volunteer computing and desktop grid computing. +volunteer computing and desktop grid computing.

    "; search_form(); diff --git a/doc/mac_advanced.php b/doc/mac_advanced.php index 13c796a40b..894bde6c33 100644 --- a/doc/mac_advanced.php +++ b/doc/mac_advanced.php @@ -5,9 +5,13 @@ echo "

    • If your browser has not already done so, expand the zip archive by double-clicking on it in the Finder. -
    • Double-click on BOINC.pkg to run the installer, then follow the prompts. -
    • Close the installer when it is finished. This will automatically launch the BOINC Manager. -
    • If you want BOINC to be your screen saver, open System Preferences from the Apple menu. Select Desktop & Screen Saver and select BOINCSaver. +
    • Double-click on BOINC.pkg to run the installer, +then follow the prompts. +
    • Close the installer when it is finished. +This will automatically launch the BOINC Manager. +
    • If you want BOINC to be your screen saver, +open System Preferences from the Apple menu. +Select Desktop & Screen Saver and select BOINCSaver.

    • The installer does the following:
        diff --git a/doc/participate.php b/doc/participate.php index 9a74305a49..17417ba0c0 100644 --- a/doc/participate.php +++ b/doc/participate.php @@ -23,7 +23,7 @@ echo "
    • Preferences -
    • Energy considerations +
    • Heat and energy considerations
    • Host identification and merging
    • Participating in multiple projects
    • Computation credit diff --git a/doc/poll_results.php b/doc/poll_results.php index e3a4481eab..5cc8f27398 100644 --- a/doc/poll_results.php +++ b/doc/poll_results.php @@ -53,13 +53,13 @@ function other_link($sums, $other_name, $link_text, $ntotal) { $y = ""; $n = count($sums[$other_name]); if ($n) { - $fname = "poll_$other_name.txt"; + $fname = "poll_$other_name.html"; $b = bar($n, $ntotal); $y .= "$b $link_text"; $f = fopen($fname, "w"); foreach ($sums[$other_name] as $text) { fwrite($f, $text); - fwrite($f, "\n-----------------\n"); + fwrite($f, "\n
      \n"); } fclose($f); } else { diff --git a/doc/prefs.php b/doc/prefs.php index 177e975242..526befc46d 100644 --- a/doc/prefs.php +++ b/doc/prefs.php @@ -79,9 +79,9 @@ They include: list_start(); -list_bar("Computing preferences"); +list_bar("Processor usage"); list_item("When to work", -"You can specify whether work (computation and network transfer) should be done +"You can specify whether computation should be done 1) if the computer is in use (i.e. during keyboard and mouse input); 2) if the computer is being powered by batteries (for laptop users). You can also specify a range of hours when work should be done. @@ -97,12 +97,16 @@ list_item("Leave applications in memory while preempted", list_item("Switch between applications every X minutes", "This determines how often BOINC switches between projects." ); - -list_item("Virtual memory", - "Limit the virtual memory used by BOINC" +list_item("Maximum number of processors to use", + "On a multiprocessor, this limits the number of processors + that BOINC will use." +); +list_item("Use at most X% of CPU time", + "It you specify 50%, BOINC will compute only every other second. + This reduces the heat output and energy usage of your CPU chip." ); -list_bar("Disk preferences"); +list_bar("Disk and memory usage"); list_item("Usage limits", "You can limit the disk space used by BOINC in any of three ways: @@ -117,7 +121,14 @@ list_item("Access interval", " ); -list_bar("Network preferences"); +list_item("Virtual memory", + "Limit the virtual memory used by BOINC" +); + +list_bar("Network usage"); +list_item("Time of day limits", + "Limit the hours during which BOINC will do network communication." +); list_item("Bandwidth limits", "Limit the number of bytes per second uploaded or downloaded by BOINC." ); diff --git a/doc/projects.php b/doc/projects.php index 565122e1e5..bf104ac99a 100644 --- a/doc/projects.php +++ b/doc/projects.php @@ -4,7 +4,10 @@ require_once("projects.inc"); page_head("Choosing BOINC projects"); echo " -A partial list of current projects (mouse over for details): +A partial list of current projects is below; +you can find others using Google. +

      +Mouse over a project for details.

        "; shuffle($areas); diff --git a/doc/release_notes.php b/doc/release_notes.php index ecf9fa977a..f8f3a575b9 100644 --- a/doc/release_notes.php +++ b/doc/release_notes.php @@ -49,6 +49,26 @@ echo " ".tr(RLN_MSWIN_INSTALL_WINSERVICE_DESC)."
      +

      Mac OS X

      +
        +
      • If your browser has not already done so, +expand the zip archive by double-clicking on it in the Finder. +
      • Double-click on BOINC.pkg to run the installer, +then follow the prompts. +
      • Close the installer when it is finished. +This will automatically launch the BOINC Manager. +
      • If you want BOINC to be your screen saver, +open System Preferences from the Apple menu. +Select Desktop & Screen Saver and select BOINCSaver. +
      +

      +Several tools for Macintosh system administrators are available to: +

        +
      • automatically run BOINC as a daemon or system service at boot time +
      • improve security for stand-alone clients +
      • prevent BOINC Manager from launching automatically when selected users log in. +
      +

      ".tr(RLN_LINUX)."

      ".tr(RLN_LINUX_INSTALL_SEA_DESC)."

      " @@ -75,6 +95,19 @@ run_manager

      ".tr(RLN_UNINSTALLING)."

      ".tr(RLN_MSWIN)."

      ".tr(RLN_MSWIN_UNINSTALL_DESC)." +

      Mac OS X

      +To completely remove (uninstall) BOINC from your Macintosh: +
        +
      • Move the following files to the trash: +
          +
        • BOINCManager.app (from your /Applications/ folder) +
        • BOINCSaver.saver (from your /Library/Screen Savers/ folder) +
        • the BOINC Data/ folder (from your/Library/Applications Support/ folder.) +
        • BOINC.pkg (from your /Library/Receipts/ folder) +
        +
      • Open the Accounts pane in the System Preferences (accessible from the Apple menu), and remove BOINCManager from your list of Login Items (or Startup Items under OS 10.3.) +
      • Open System Preferences from the Apple menu. Select Desktop & Screen Saver and select a different screen saver. +

      ".tr(RLN_KNOWN_ISSUES)."

      diff --git a/html/ops/db_update.php b/html/ops/db_update.php index 99f0b89275..7889f3db13 100644 --- a/html/ops/db_update.php +++ b/html/ops/db_update.php @@ -232,7 +232,7 @@ function update_1_13_2005() { } function update_1_18_2005() { - do_query("ALTER TABLE forum_preferences CHANGE special_user special_user CHAR( 8 ) DEFAULT '0' NOT NULL"); + do_query("ALTER TABLE forum_preferences CHANGE special_user special_user CHAR(12) DEFAULT '0' NOT NULL"); } function update_1_19_2005() {