diff --git a/checkin_notes b/checkin_notes index 83dd2c747e..bd58fa88f4 100755 --- a/checkin_notes +++ b/checkin_notes @@ -17984,3 +17984,13 @@ David 1 Oct 2004 cs_account.C cs_prefs.C cs_scheduler.C + +David 1 Oct 2004 + - CLIENT_STATE::avg_proc_rate: include on_frac in the formula + (from Ben Herndon) + + client/ + cs_scheduler.C + time_stats.h + sched/ + server_types.h diff --git a/client/cs_scheduler.C b/client/cs_scheduler.C index 0c3bd6450d..a3958811c1 100644 --- a/client/cs_scheduler.C +++ b/client/cs_scheduler.C @@ -345,7 +345,7 @@ bool CLIENT_STATE::some_project_rpc_ok() { double CLIENT_STATE::avg_proc_rate(PROJECT *p) { return (p->resource_share / trs) * ncpus - * time_stats.active_frac; + * time_state.on_frac * time_stats.active_frac; } // "estimated time to project result count" diff --git a/client/time_stats.h b/client/time_stats.h index f59791ddc8..6c12a4c77a 100644 --- a/client/time_stats.h +++ b/client/time_stats.h @@ -17,22 +17,22 @@ // Contributor(s): // -// keep track of the fraction of time this host is -// "on" (i.e. the core client is running) -// "connected" (to the Internet) -// "active" (not suspended by user activity or prefs) -// -// We maintain an exponentially weighted mean of these quantities - #include "miofile.h" class TIME_STATS { int last_update; bool first; public: +// we maintain an exponentially weighted average of these quantities: double on_frac; + // the fraction of time this host runs the core client double connected_frac; + // of the time running the core client, + // the fraction the host is connected to the Internet double active_frac; + // of the time running the core client, + // the fraction the core client is able to work + // (due to preferences, manual suspend/resume, etc.) void update(bool is_connected, bool is_active); diff --git a/doc/create_project.php b/doc/create_project.php index 0adef9754b..6c8ce1c872 100644 --- a/doc/create_project.php +++ b/doc/create_project.php @@ -86,7 +86,6 @@ The components of a BOINC project, and how to create them.
\n";
}
diff --git a/doc/gui_rpc.php b/doc/gui_rpc.php
index b5f0d46c67..0f06a68a89 100644
--- a/doc/gui_rpc.php
+++ b/doc/gui_rpc.php
@@ -104,7 +104,6 @@ list_item_func(
);
list_item_func(
"get_messages(
- int nmessages,
int seqno,
vector
+Each BOINC project has its own database and servers.
+Each account has its own copy of your
+general preferences.
+When you edit your general preferences on a particular project,
+initially it changes only that one account.
+However, BOINC will eventually
+
+Be careful about editing general preferences at different projects.
+If you change your general preferences at project A,
+then edit them at project B before the first changes have propagated there,
+the second changes will overwrite the first.
+To avoid this, pick a 'home project' and do all your edits there.
+
+
+Each host attached to a project has its own
+record in the database of that project;
+this record includes the location (home/work/school) of the host.
+BOINC doesn't try to make these agree -
+it's possible that a given host has location 'work'
+on project A, and location 'school' on project B.
+When the BOINC Manager starts up, it shows you
+that locations of the host on all the projects
+to which it's attached.
+
+
+A host's location on a given project determines which
+project preferences are used:
+i.e., if a host has location 'home' an project A,
+and you've defined separate project preferences for 'home',
+it will use those preferences.
+
+
+The choice of general preferences (if you've defined
+separate preferences) is determined by
+the host's location on the project from which the
+general preferences were propagated,
+i.e. from the project where you last edited them.
+So if you edit your general preferences on project A,
+a host's location on project A is 'work',
+and you've defined separate general preferences for 'work',
+the host will use those.
+
+
+";
+page_tail();
+?>
diff --git a/doc/participate.php b/doc/participate.php
index c5903214be..ea419e1fd9 100644
--- a/doc/participate.php
+++ b/doc/participate.php
@@ -18,7 +18,7 @@ echo "
-You can specify preferences determining and limiting
+You can specify preferences that determine and limit
how BOINC uses your computers.
-Preferences are divided into two groups:
-
+You can view and edit your preferences via the project's web site.
+Click on 'Your account', then 'View or edit preferences'.
+This shows you the preferences.
+If you want to change anything,
+click on 'Edit preferences'.
+
+
+When you change your preferences on the web,
+the changes won't take effect immediately on your computer;
+they'll take effect the next time your computer
+connects to the project's server.
+If you want this to happen immediately,
+bring up the BOINC Manager on your computer,
+select the project, and click 'Update'.
+
+
+If you're running BOINC on several computers,
+preference changes will eventually propagate to all of them.
+
+
+If you participate in multiple BOINC projects,
+click here
+for information about preferences.
+
+
+Each computer attached to your account has a location.
+To view this, go to the project's web site, then click
+'Your account' and 'View Computers'.
+Click on the ID of the computer you're interested in.
+At the bottom of the page there's a popup menu
+that lets you see or change the location.
+A change to a computer's location will take effect
+only when that computer contacts the server;
+you can make this happen immediately
+using the BOINC Manager's Update command.
+
+
+If a computer has its location set to 'home' (for example),
+and you've defined separate preferences for home,
+it will use those preferences.
+Otherwise it will use your default preferences.
+
+
+Your account has a 'default location' (home, work, or school).
+New computers attaching to your account will be given the default location.
+The default location is part of your project preferences,
+so to change it, edit your project preferences.
+
+
-This scheme allows computers that are sporadically connected
-(because they're portable or have modem-based connections)
-to avoid becoming idle due to lack of work.
-If the host is frequently disconnected from the Internet, the min
-should be at least as long as the typical period of disconnection.
-The larger the difference between min and max, the less often
-the BOINC client will connect to the Internet.
+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.
");
-list_item("Disk usage limits",
+
+list_item("Leave applications in memory while preempted",
+ "If yes, applications will be preempted by suspending and resuming,
+ rather than quitting.
+ This uses more virtual memory, but uses CPU time more efficiently."
+);
+
+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_bar("Disk preferences");
+
+list_item("Usage limits",
"You can limit the disk space used by BOINC in any of three ways:
1) Maximum disk space used by BOINC;
2) Maximum percentage of total space that can be used by BOINC.
3) Minimum disk space to keep free.
");
-list_item("Leave applications in memory while preempted",
-"If yes, applications will be preempted by suspend/resume.
-This uses more virtual memory, but uses CPU time more efficiently."
+list_item("Access interval",
+ "A suggested interval between disk accesses.
+ Useful on laptops where the disk may be spun down for long periods.
+ "
+);
+
+list_bar("Network preferences");
+list_item("Bandwidth limits",
+ "Limit the number of bytes per second uploaded or downloaded by BOINC."
+);
+list_item("Network connection preferences",
+"Whether to wait for confirmation before making network connections,
+and whether to disconnect when done.");
+
+list_item("Time between network connections",
+ "Target time between network connections.
+ When your computer asks a server for work,
+ it will try to get enough work to last for this long."
);
list_end();
echo "
-You can view and edit your general preferences through a web interface,
-at the site of any project in which you participate.
-Changes are automatically propagated to all your hosts;
-this is done the next time the host contacts the project's server,
-so there may be some delay.
-
-You can view and edit project preferences through
-a web interface at the project's web site.
-
-Your account with a project has a 'default location'
-(home, work, or school).
-New computers registered to your account will be
-given the default location.
-You can change the location of an existing computer
-through the project's web site.
";
page_tail();
?>
diff --git a/doc/startup.php b/doc/startup.php
deleted file mode 100644
index deec2ffc1a..0000000000
--- a/doc/startup.php
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-You can join a second and subsequent projects as follows.
-
-Your preferences are stored on BOINC servers.
-When your hosts communicate with a server they get the latest preferences,
-and they pass along these preferences to other servers.
-Thus, when you change your preferences on one project's web site,
-these changes will quickly spread to all your hosts,
-and to the web sites of all the other projects in which you participate.
-
-
-If you change your preferences first at one project
-and then at another, the second changes will overwrite the first.
-To avoid this, do all your edits at one project.
-
-
-Some projects may provide a web interface
-for editing their project-specific preferences.
-In this case it may be necessary to edit preferences at different sites.
-To avoid overwriting edits,
-wait until previous edits have propagated to a site
-before editing preferences there.
-";
-page_tail();
-?>
diff --git a/doc/tool_update_versions.php b/doc/tool_update_versions.php
index 26718d0290..e592e3e323 100644
--- a/doc/tool_update_versions.php
+++ b/doc/tool_update_versions.php
@@ -29,7 +29,14 @@ boinc_3.17_i686-pc-linux-gnu.gz
astropulse_7.17_windows_intelx86.exe
The prefix name and extensions .gz, .exe, .sit are ignored.
-Platform strings must match the names of platforms in the database.
+
+Important notes:
+
If a file of the form
diff --git a/sched/server_types.h b/sched/server_types.h
index c25d900219..1df5f2f270 100644
--- a/sched/server_types.h
+++ b/sched/server_types.h
@@ -142,8 +142,9 @@ struct SCHEDULER_REPLY {
int request_delay; // don't request again until this time elapses
char message[1024];
char message_priority[256];
- int hostid; // send this only if nonzero.
- // this tells client to reset rpc_seqno
+ int hostid;
+ // nonzero only if a new host record was created.
+ // this tells client to reset rpc_seqno
bool send_global_prefs; // whether to send global preferences
bool nucleus_only; // send only message
bool probable_user_browser;
+
+
+General preferences
+
+
+
+This propagation is 'piggybacked' onto the
+scheduler requests between your computers and project servers.
+You can accelerate the propagation by using
+the Update command in the BOINC Manager.
+
+Host location
+
+General preferences
+Preferences are divided into two groups: General and Project.
+
+Editing preferences
+Location-specific preferences
+
+If you have computers at several locations (e.g. home, work and school)
+you may want to use different preferences for different locations.
+The preferences editing system (see above)
+lets you create (or delete) separate preferences for home, work, and school.
+
+General preferences
General preferences apply to all BOINC projects in which you participate.
They include:
";
list_start();
+list_bar("Computing preferences");
list_item("When to work",
"You can specify whether work (computation and network transfer) should be done
-1) while the host is being used (i.e. during keyboard and mouse input);
-2) while the computer is being powered
-by batteries (for laptop users).
-");
-list_item("Confirm before connect",
-"Whether to wait for confirmation before making network connections.");
-list_item("Work buffering min and max",
-"
-Your computer maintains an estimate of the amount of work remaining
-(i.e. the time until one of its processors will be idle).
-You can choose the minimum work and the
-maximum work to keep.
-Normally the work remaining is between these two limits.
-When the work remaining reaches minimum level,
-your computer contacts one or more scheduling servers,
-and attempts to get enough work to exceed the maximum level.
-Project preferences
+Project preferences
There is a separate set of project preferences
for each project in which you participate.
-They include:
-
-
+These include:
+";
+list_start();
+list_item(
+ "Resource share",
+ "If projects contend for resources,
+ the amount allocated to a project is proportional to this number."
+);
+list_item(
+ "Email prefs",
+ "Whether the project should send you newsletters by email."
+);
+list_item(
+ "Hide computer information",
+ "Whether the project should show information
+ about your computers
+ (their CPU and OS type, benchmark ratings etc.;
+ not their names or addresses)
+ on its web site."
+);
+list_item(
+ "Default computer location",
+ "The location assigned to computers that attach to this account."
+);
+list_item(
+ "Project-specific preferences",
+ "Defined by the project;
+ e.g., to specify graphics color schemes."
+);
+list_end();
+echo"
Location-specific preferences
-If you have computers both at home and at work
-you may want to use different preferences for them.
-In addition to your 'primary preferences'
-(which are used by default)
-BOINC allows you to create separate preferences for
-home, work, and school.
-
-
-
-Where to edit your preferences
-
+