mirror of https://github.com/BOINC/boinc.git
60 lines
2.5 KiB
HTML
60 lines
2.5 KiB
HTML
<title>Measuring and Distinguishing Hosts</title>
|
|
<body bgcolor=ffffff>
|
|
<h2>Measuring and Distinguishing Hosts</h2>
|
|
<p>
|
|
The core client measures the following aspects of each host:
|
|
<ul>
|
|
<li> <b>CPU performance</b>: integer ops/sec, double-precision
|
|
floating-point ops/sec, and memory bandwidth are measured separately.
|
|
They are measured by a process executing at the same priority as BOINC
|
|
applications, so the results will be affected by other processes.
|
|
These measurements are taken when the client starts for the first time,
|
|
and once every month afterwards.
|
|
<li> <b>Number of CPUs</b>: By default, the number of simultaneous
|
|
slot directories will be set to this number unless otherwise indicated
|
|
by user preferences.
|
|
<li> <b>Vendor and model of CPU</b>
|
|
<li> <b>Disk space</b>: free space and total space on the drive which
|
|
BOINC is installed on.
|
|
These numbers will be used to ensure BOINC does
|
|
not use more space than set in the user preferences.
|
|
<li> <b>Memory</b>: total RAM, CPU cache, and swap space.
|
|
These numbers can be used by the scheduling server to decide whether or not to
|
|
assign work to a client.
|
|
This also provides a means for assignment of
|
|
differing work based on host abilities.
|
|
<li> <b>Timezone</b>:
|
|
<li> <b>Last IP address</b> and count of consecutive same addresses.
|
|
<li> <b>Number of RPCs and time of last RPC</b>.
|
|
<li> <b>Fractions of time</b> that core client runs on host, host is
|
|
connected, and user is active.
|
|
These are computed as exponentially-weighted averages; see the class TIME_STATS.
|
|
<li> <b>Operating system name and version</b>.
|
|
<li> <b>Average up- and downstream network bandwidth</b>.
|
|
These are computed as exponentially-weighted averages; see the class NET_STATS.
|
|
</ul>
|
|
|
|
These quantities are reported in every scheduling RPC, and their latest
|
|
values are stored in the BOINC database.
|
|
|
|
<h3>Distinguishing hosts</h3>
|
|
<p>
|
|
Not all systems have an application-readable globally unique ID, so
|
|
we don't take this approach.
|
|
When a host first contacts the scheduling
|
|
server it is assigned a host ID, which it stores in its
|
|
<tt>client_state.xml</tt> file.
|
|
|
|
<p>
|
|
The BOINC database maintains the RPC sequence number for each host,
|
|
and the host maintains the sequence number in its
|
|
<tt>client_state.xml</tt> file.
|
|
|
|
<p>
|
|
To install the BOINC client on a large number of computers, users
|
|
are instructed to copy only the executable and the <tt>prefs.xml</tt> file.
|
|
If the user copies the <tt>client_state.xml</tt> file as well, the
|
|
first RPCs from the other hosts will have a repeat sequence number;
|
|
in this case the scheduling server creates a new host record and returns
|
|
its ID.
|