*** empty log message ***

svn path=/trunk/boinc/; revision=4283
This commit is contained in:
David Anderson 2004-10-01 22:00:39 +00:00
parent da00b02632
commit 448c9ab56d
13 changed files with 270 additions and 120 deletions

View File

@ -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

View File

@ -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"

View File

@ -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);

View File

@ -86,7 +86,6 @@ The components of a BOINC project, and how to create them.
<li> <a href=code_signing.php>Code signing</a>
<li> <a href=tool_update_versions.php>Adding application versions</a>
<li> <a href=tool_upgrade.php>Upgrading a project's server software</a>
<li> <a href=web.php>Managing the project web site</a>
</ul>
@ -132,6 +131,16 @@ Using disk space on participant hosts
<li> <a href=delete_file.php>Deleting files</a>
</ul>
<font size=+1><b>
Miscellaneous
</b></font>
<br> &nbsp; &nbsp; &nbsp;
<font size=-1>
Communicating with participants
</font>
<ul>
<li> <a href=web.php>Managing the project web site</a>
</ul>
";
page_tail();
?>

View File

@ -72,6 +72,12 @@ function list_item_func($x, $y) {
list_item(html_text($x), $y);
}
function list_bar($x) {
echo "
<tr><td colspan=2 bgcolor=eeeecc><center><b>$x</b></center></td></tr>
";
}
function list_end() {
echo "</table><p>\n";
}

View File

@ -104,7 +104,6 @@ list_item_func(
);
list_item_func(
"get_messages(
int nmessages,
int seqno,
vector<MESSAGE_DESC>&
)",
@ -112,9 +111,8 @@ list_item_func(
Each message has a sequence number (1, 2, ...),
a priority (1=informational, 2=error)
and a timestamp.
The RPC requests the N most recent messages
with sequence numbers greater than M.
They are returned in order of decreasing sequence number."
The RPC requests the messages with sequence numbers greater than M.
They are returned in order of increasing sequence number."
);
list_item_func(
"file_transfer_op(FILE_TRANSFER&, char* op)",

View File

@ -73,6 +73,11 @@ show_link(
"www.boinc.de",
"http://www.boinc.de/"
);
show_link(
"German",
"BOINC - LUBECA (Lübeck, Germany)",
"http://www.boinc-lubeca.de/"
);
show_link(
"German",
"www.boinc-forum.de",

84
doc/multiple_projects.php Normal file
View File

@ -0,0 +1,84 @@
<?php
require_once("docutil.php");
page_head("Participating in multiple projects");
echo "
<p>
You can join a second and subsequent projects as follows.
<ol>
<li> Visit the second project's web site and create an account.
You don't have to use the same email address,
but if you do so the accounts will be 'coupled'
in terms of preferences and statistics.
<li> Receive an email containing an account ID.
<li> Paste the account ID into the project's web site
to complete the account creation.
<li> Run the BOINC client, and select the <b>Attach to Project</b> command.
Enter the project's URL and your account ID.
</ol>
<h2>General preferences</h2>
<p>
Each BOINC project has its own database and servers.
Each account has its own copy of your
<a href=prefs.php>general preferences</a>.
When you edit your general preferences on a particular project,
initially it changes only that one account.
However, BOINC will eventually
<ol>
<li> propagate the new preferences to all computers
attached to that account, and
<li> propagate the new preferences to all
accounts that are 'coupled' to the first one
(i.e. that have the same email address,
and have at least one computer attached to both accounts).
</ol>
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.
<p>
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.
<h2>Host location</h2>
<p>
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.
<p>
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.
<p>
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();
?>

View File

@ -18,7 +18,7 @@ echo "
</ul>
<li> <a href=prefs.php>Preferences</a>
<li> <a href=host_id.php>Host identification and merging</a>
<li> <a href=startup.php>Participating in multiple projects</a>
<li> <a href=multiple_projects.php>Participating in multiple projects</a>
<li> <a href=credit.php>Computation credit</a>
<li> <a href=cpu_sched.php>CPU scheduling</a>
<li> <a href=teams.php>Teams</a>

View File

@ -3,95 +3,166 @@ require_once("docutil.php");
page_head("Preferences");
echo "
<p>
You can specify <b>preferences</b> determining and limiting
You can specify <b>preferences</b> that determine and limit
how BOINC uses your computers.
Preferences are divided into two groups:
<h3>General preferences</h3>
Preferences are divided into two groups: General and Project.
<h2>Editing preferences</h2>
<p>
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'.
<p>
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'.
<p>
If you're running BOINC on several computers,
preference changes will eventually propagate to all of them.
<p>
If you participate in multiple BOINC projects,
click <a href=multiple_projects.php>here</a>
for information about preferences.
<h2>Location-specific preferences</h2>
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.
<p>
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.
<p>
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.
<p>
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.
<h2>General preferences</h2>
<b>General preferences</b> 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 <b>minimum work</b> and the
<b>maximum work</b> 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.
<p>
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.
<h3>Project preferences</h3>
<h2>Project preferences</h2>
There is a separate set of <b>project preferences</b>
for each project in which you participate.
They include:
<ul>
<li> Resource share: if projects contend for resources,
the amount allocated to a project is proportional to this number.
<li> Whether to show email address on web site
<li> Whether project should send emails to user
<li> Project-specific preferences (defined by the project;
e.g., to specify graphics color schemes).
</ul>
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"
<p>
You can view and edit project preferences through
a web interface at the project's web site.
<h3>Location-specific preferences</h3>
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.
<p>
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();
?>

View File

@ -1,41 +0,0 @@
<?php
require_once("docutil.php");
page_head("Participating in multiple projects");
echo "
<p>
You can join a second and subsequent projects as follows.
<ol>
<li> Visit the new project's web site and create an account.
Note: if you wish, you can use different email and name
than those of your first account.
<li> Receive an email containing an account ID (a long random string).
<li> Run the BOINC client, and select the <b>Attach to Project</b> command.
Enter the project's URL and your account ID.
</ol>
<h3>Where to edit your preferences</h3>
<p>
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.
<p>
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.
<p>
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();
?>

View File

@ -29,7 +29,14 @@ boinc_3.17_i686-pc-linux-gnu.gz
astropulse_7.17_windows_intelx86.exe
</pre>
The prefix name and extensions .gz, .exe, .sit are ignored.
Platform strings must match the names of platforms in the database.
<p>
Important notes:
<ul>
<li> <b>Platform strings must match the names of platforms in the database.</b>
If needed, <a href=tool_xadd.php>add the platform to the DB</a>.
<li> <b>Your application must have the same major version number
as your BOINC server software</b>.
</ul>
<p>
If a file of the form

View File

@ -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;