svn path=/trunk/boinc/; revision=2196
This commit is contained in:
David Anderson 2003-08-26 18:33:21 +00:00
parent b387dd380a
commit f6771bac8c
46 changed files with 368 additions and 1204 deletions

View File

@ -1,6 +1,7 @@
<title>Joining a project</title>
<body bgcolor=ffffff>
<h2>Joining a project</h2>
<?
require_once("docutil.php");
page_head("Joining a project");
echo "
<p>
You can join a BOINC project as follows:
@ -9,7 +10,7 @@ You can join a BOINC project as follows:
This involves filling out a form with
<ul>
<li> An email address.
<li> A public "screen name" (real name or nickname).
<li> A public 'screen name' (real name or nickname).
<li> Country (optional)
<li> Postal Code (optional)
</ul>
@ -47,3 +48,6 @@ from an existing host to the new host.
The BOINC client resides in a <b>BOINC home directory</b>.
If hosts share a network file system,
each host must have its own BOINC home directory.
";
page_tail();
?>

View File

@ -24,19 +24,20 @@ This can result from tampering or hardware failures.
This problem can be addressed
by <b>redundant computing</b>
In this approach, each workunit is processed at least twice.
The project back end waits until a minimum number of results have been returned,then compares the results and decides which are considered correct.
The project back end waits until a minimum number of results have been returned,
then compares the results and decides which are considered correct.
The notion of equality of results,
and the policy for deciding which are correct, are project-specific.
<p>
<li> <b>Grant credit</b>.
Some users will attempt to get undeserved credit by falsifying their CPU
metrics or CPU times. Each project and application can have its own
credit-granting algorithm, for example granting the minimum or the mean of
the median of all claimed credits (during validation time). The granted
credit is assigned to all correct results. This ensures that as long as a
reasonable majority of participants don't falsify credit, almost all credit
accounting will be correct.
Some users will attempt to get undeserved credit by falsifying their CPU
metrics or CPU times. Each project and application can have its own
credit-granting algorithm, for example granting the minimum or the mean of
the median of all claimed credits (during validation time). The granted
credit is assigned to all correct results. This ensures that as long as a
reasonable majority of participants don't falsify credit, almost all credit
accounting will be correct.
<p>
<li> <b>Assimilate results</b>.
<p>

View File

@ -1,65 +1,97 @@
<?
require_once("docutil.php");
page_head("Work unit and results states");
page_head("Workunit and result scheduling logic");
echo "
<p>
The processing of workunits and results involves several independent activities.
To keep track of these activities,
workunit and result database records have several parameters and state fields,
and their processing can be expressed in terms of state machines.
Workunit and result database records have several state fields,
and their processing can be described in terms of state transitions.
<hr>
<h3>Workunit.delay_bound</h3>
An upper bound for the interval between when a scheduler
sends an instance of this WU to a host
when the host sends the completion message.
It should be several times the execution time on an average host.
If it's exceeded, the server 'gives up' on the result
and may delete its input files.
If the result is returned later,
it will still be validated and credited.
<p>
Several workunits parameters are described
<a href=work.php>here</a>.
<h3>Workunit.canonical_resultid</h3>
The ID of the canonical result for this workunit, or zero.
Other state fields include
";
list_start();
list_item(
"canonical_resultid",
"The ID of the canonical result for this workunit, or zero."
);
<h3>Workunit.timeout_check_time</h3>
The next time to check for timeouts on this WU
(e.g. to give up on results and create new ones).
<center>
<br><img src=wu_timeout.png>
</center>
</center>
list_item("transition_time",
"The next time to check for state transitions for this WU.
<ul>
<li>Initially now.
<li>Set to now by scheduler when get a result for this WU.
<li>Set to min(current value, now + delay_bound) by scheduler
when send a result for this WU
<li>Set to min(x.sent_time + wu.delay_bound) over IN_PROGRESS results x
by transitioner when done handling this WU
<li>Set to now by validater if it finds canonical result,
or if there is already a canonical result
and some other results have validate_state = INIT,
or if there is no consensus and the number of successful results
is > wu.max_success_results
</ul>
"
);
list_item("file_delete_state",
"Indicates whether input files should be deleted.
<ul>
<li>Initially INIT
<li>Set to READY by transitioner when all results have server_state=OVER
and wu.assimilate_state=DONE
<li>Set to DONE by file_deleter when it has attempted to delete files.
</ul>
"
);
<h3>Workunit.file_delete_state</h3>
Indicates whether input files should be deleted.
<center>
<br><img src=wu_file_delete.png>
</center>
list_item("assimilate_state",
"Indicates whether the workunit should be assimilated.
<ul>
<li> Initially INIT
<li> Set to READY by transitioner if wu.assimilate_state=INIT
and WU has error condition
<li> Set to READY by validater when find canonical result
and wu.assimilate_state=INIT
<li> Set to DONE by assimilator when done
</ul>
"
);
<h3>Workunit.assimilate_state</h3>
Indicates whether the workunit should be assimilated.
<center>
<br><img src=wu_assimilate.png>
</center>
list_item("need_validate",
"Indicates that the workunit has a result that needs validation.
<ul>
<li> Initially FALSE
<li> Set to TRUE by transitioner if the number of success results
is at least wu.min_quorum and there is a success result
not validated yet
<li> Set to FALSE by validater
</ul>
"
);
<h3>Workunit.need_validate</h3>
Indicates that the workunit has a result that needs validation.
<center>
<br><img src=wu_need_validate.png>
</center>
<h3>Workunit.error_mask</h3>
A bit mask for error conditions.
<center>
<br><img src=wu_error_mask.png>
</center>
list_item("error_mask",
"A bit mask for error conditions.
<ul>
<li> Initially zero
<li> Transitioner sets COULDNT_SEND_RESULT if some result couldn't be sent.
<li> Transitioner sets TOO_MANY_RESULTS if too many error results
<li> Transitioner sets TOO_MANY_TOTAL_RESULTS if too many total results
<li> Validater sets TOO_MANY_SUCCESS_RESULTS if no consensus
and too many success results
</ul>
"
);
list_end();
echo "
</ul>
Workunit invariants:
<ul>
<li> eventually either canonical_resultid or error_mask is set
<li> eventually timeout_check_time=0
<li> eventually transition_time = infinity
<li> WUs are eventually assimilated
<li> input files are eventually deleted,
but only when all results have state=OVER
@ -67,35 +99,79 @@ but only when all results have state=OVER
and wu.assimilate_state = DONE
(since project may want to do something with WU in error case)
</ul>
";
<hr>
list_start();
list_item("report_deadline",
"Give up on result (and possibly delete input files)
if don't get reply by this time.
<ul>
<li> Set by scheduler to now + wu.delay_bound when send result
</ul>
"
);
list_item("server_state",
"Values: UNSENT, IN_PROGRESS, OVER
<ul>
<li> Initially UNSENT
<li> Set by scheduler to IN_PROGRESS when send result
<li> Set by scheduler to OVER when get reply from client
<li> Set by transitioner to OVER if now < result.report_deadline
<li> Set by transitioner to OVER if WU has error condition
and result.server_state=UNSENT
<li> Set by validater to OVER if WU has canonical result
and result.server_state=UNSENT
</ul>
"
);
list_item("outcome",
"Values: SUCCESS, COULDNT_SEND, CLIENT_ERROR, NO_REPLY, DIDNT_NEED.
<br>Defined iff result.server_state=OVER
<ul>
<li> Set by scheduler to SUCCESS if get reply and no client error
<li> Set by scheduler to CLIENT_ERROR if get reply and client error
<li> Set by transitioner to NO_REPLY if server_state=IN_PROGRESS
and now<report_deadline
<li> Set by transitioner to DIDNT_NEED if WU has error condition
and result.server_state=UNSENT
<li> Set by validater to DIDNT_NEED if WU has canonical result
and result.server_state=UNSENT
</ul>
"
);
list_item("client_state",
"Records the client state (upload, process, or download)
where an error occurred.
Defined if outcome is CLIENT_ERROR.
"
);
<h3>Result.report_deadline</h3>
give up on result (and possibly delete input files)
if don't get reply by this time.
<p>
Assignment: when send result; now + WU.delay_bound
list_item("file_delete_state",
"
<ul>
<li> Initially INIT
<li> Set by transitioner to READY if this is the canonical result,
and file_delete_state=INIT,
and wu.assimilate_state=DONE
<li> Set by transitioner to READY if wu.assimilate_state=DONE
and result.outcome=CLIENT_ERROR
or result.validate_state!=INIT
"
);
<h3>Result.server_state</h3>
<center>
<br><img src=result_server_state.png>
</center>
list_item("validate_state",
"
Defined iff result.outcome=SUCCESS
<ul>
<li> Initially INIT
<li> Set by validater to VALID if outcome=SUCCESS and matches canonical result
<li> Set by validater to INVALID if outcome=SUCCESS and doesn't match canonical result
"
);
list_end();
<h3>Result.outcome</h3>
SUCCESS, COULDNT_SEND, CLIENT_ERROR, NO_REPLY, DIDNT_NEED.
Defined if server_state = OVER.
<h3>Result.client_state</h3>
Records the client state (upload, process, or download)
where an error occurred.
Defined if outcome is CLIENT_ERROR.
<h3>Result.file_delete_state</h3>
<br><img src=result_file_delete.png>
<h3>Result.validate_state</h3>
<br><img src=result_validate.png>
echo "
<p>
Result invariants:

View File

@ -1,8 +1,7 @@
<title>Running the client</title>
<body bgcolor=ffffff>
<h2>Running the client</h2>
<p>
<hr>
<?
require_once("docutil.php");
page_head("Running the BOINC client");
echo "
<h3>BOINC for Windows</h3>
<p>
The <b>BOINC work manager</b> program controls
@ -65,7 +64,7 @@ The work manager window has several tabs:
Shows status and error messages.
Messages can be sorted by project or time.
You can <a href=messages.html>control what messages are shown</a>.
Messages are also written to a file "messages.txt".
Messages are also written to a file 'messages.txt'.
<li> <b>Disk</b>:
This shows how much disk space is available for use by BOINC,
@ -159,5 +158,8 @@ Do this if you have modified your computer's hardware.
</dl>
<p>
To remove a project: quit the client.
Then delete the file "account_PROJECT-URL.xml"
Then delete the file 'account_PROJECT-URL.xml'
where PROJECT-URL is the project's URL.
";
page_tail();
?>

View File

@ -1,4 +1,7 @@
<h2>Contact us</h2>
<?
require_once("docutil.php");
page_head("BOINC contact information");
echo "
<p>
The BOINC project is based at the Space Sciences Laboratory
at the University of California, Berkeley.
@ -6,3 +9,6 @@ at the University of California, Berkeley.
For inquiries about BOINC, please email
the Project Director,
<a href=mailto:davea@ssl.berkeley.edu>Dr. David P. Anderson</a>.
";
page_tail();
?>

View File

@ -18,10 +18,12 @@ BOINC's abstractions of data and computation.
<li><a href=app.php>Applications and application versions</a>
<li><a href=work.php>Workunits</a>
<li><a href=result.php>Results</a>
<li><a href=redundancy.php>Redundancy and errors</a>
<!--
<li><a href=batch.php>Batches</a>
<li><a href=flow.php>Work distribution</a>
<li><a href=sequence.php>Handling long, large-footprint computations</a>
<li><a href=file_access.php>Remote file access</a>
-->
<li><a href=security.php>Security</a>
<li><a href=boinc_version.php>Versions of BOINC</a>
@ -73,7 +75,9 @@ How to feed work into a BOINC system and collect the results.
<li> <a href=backend_state.php>Back end state transitions</a>
<li> <a href=backend_programs.php>Back end programs</a>
<li> <a href=tools_work.php>Generating work</a>
<!--
<li> <a href=backend_work_sequence.php>Back ends and work sequences</a>
-->
<li> <a href=back_end.php>Back end examples</a>
</ul>

View File

@ -1,16 +1,17 @@
<title>Computation credit</title>
<body bgcolor=ffffff>
<h2>Computation credit</h2>
<?
require_once("docutil.php");
page_head("Computation credit");
echo "
<p>
Each project gives you <b>credit</b> for the computations your
computers performs for the project.
These credits are used to generate web-site "leaderboards" showing
These credits are used to generate web-site 'leaderboards' showing
individuals, teams, and categories (countries, CPU types, etc.)
ranked by credit.
<p>
BOINC's credit system is based on a "reference computer" that does
BOINC's credit system is based on a 'reference computer' that does
<ul>
<li>1 billion floating-point multiplies per second
<li>1 billion integer multiplies per second
@ -61,3 +62,6 @@ projects supply their own benchmarking functions.
This will also handle the situation where a project's
application does e.g. all integer arithmetic.
</ul>
";
page_tail();
?>

View File

@ -1,5 +1,7 @@
<title>Exporting statistics data</title>
<h2>Exporting statistics data</h2>
<?
require_once("docutil.php");
page_head("Exporting statistics data");
echo "
<p>
BOINC projects may export data describing teams, users and hosts.
@ -7,17 +9,17 @@ This data is exported in XML files that can be downloaded
by HTTP from a designated server.
<p>
The data is presented in several different "views":
The data is presented in several different 'views':
teams ordered by credit, teams ordered by ID, etc.
To increase the efficiency of data access,
views are broken into a number of files,
each containing a fixed number of records.
<p>
The entries in a given file are in either "summary" or "detail" form.
The entries in a given file are in either 'summary' or 'detail' form.
For example, the summary of a team gives its ID, name, and credit,
while the detailed from also contains a list of its members.
<p>
These files can be zipped or gzipped by passing the "-zip" or "-gzip"
These files can be zipped or gzipped by passing the '-zip' or '-gzip'
command to the db_dump program.
<p>
The files are as follows:
@ -209,3 +211,6 @@ g%27%3E&lt;/name_html>
&lt;n_bwdown>57037.049858&lt;/n_bwdown>
&lt;/host>
</pre>
";
page_tail();
?>

View File

@ -1,4 +0,0 @@
<title>Core client: file transfer policy</title>
<body bgcolor=ffffff>
<h2>Core client: file transfer policy</h2>
<p>

View File

@ -1,32 +0,0 @@
<?
require_once("docutil.php");
page_head("Work distribution");
echo "
<p>
Results are not necessarily dispatched one at a time.
Instead, each participant host
maintains an estimate of the amount of work remaining
(i.e. the time until one of its processors will be idle).
Each host also
has two scheduling parameters, the <b>high-water mark</b> and the
<b>low-water mark</b>
(these are part of the host's 'preferences', discussed elsewhere).
<p>
Normally the work remaining is between the high- and low-water marks.
When the work remaining reaches the low-water mark, the core
client contacts one or more scheduling servers,
and attempts to get enough work to exceed the high-water mark.
The scheduling server sends a maximum of four weeks of work.
If a work unit is not feasible for a host
because it consumes too many system resources,
the scheduling server will not send that work unit.
<p>
The amount of work (measured in FP/int ops) sent in a single
scheduling RPC can be limited by the project, on a per-application basis.
<p>
This scheme allows hosts that are sporadically connected
(because they're portable or have modem-based connections)
to avoid becoming idle due to lack of work.
";
page_tail();
?>

View File

@ -11,8 +11,8 @@
<center>
<font size=+1>
<b>
Berkeley Open Infrastructure for Network Computing
(BOINC)
Berkeley Open Infrastructure for Network Computing (BOINC)
<br>
combines PCs into supercomputers.
</b>
</font>
@ -22,7 +22,7 @@ combines PCs into supercomputers.
<table width=100% border=0 cellpadding=10>
<tr>
<td width=60% valign=top>
<td valign=top width=40%>
<a href="intro.php"><b>Overview of BOINC</b></a>
<br><br>
@ -34,7 +34,7 @@ Use BOINC to develop resource-intensive applications
</font>
<br><br>
<a href=participate.html><b>Participating in BOINC projects</b></a>
<a href=participate.php><b>Participating in BOINC projects</b></a>
<br>
&nbsp;&nbsp;&nbsp;
<font size=-1>
@ -61,11 +61,11 @@ Help debug and enhance the BOINC software.
<a href=http://boinc.astroseti.org><font size=-1>Spanish</font></a>
<br><br>
<a href=contact.html><b>Contact us</b></a>
<a href=contact.php><b>Contact us</b></a>
<br><br>
</td>
<td valign=top bgcolor=d8f4ff width=100%>
<td valign=top bgcolor=d8f4ff>
<center>
<h3>Status and news</h3>
</center>
@ -110,5 +110,5 @@ experiment with dividing their resources between multiple projects.
<br>
We have resumed the BOINC beta test.
<br><br>
<a href=old_news.html>Archived news</a>
<a href=old_news.php>Archived news</a>
</td> </tr></table>

View File

@ -1,3 +1,7 @@
<?
require_once("docutil.php");
page_head("Archived news");
echo "
<b>April 9, 2003</b>
<br>
Due to a legal issue,
@ -57,3 +61,6 @@ Many bugs have been found and fixed.
<br>BOINC is under development.
The basic features are working on UNIX platforms.
We plan to release the first public application of BOINC later this year.
";
page_tail();
?>

View File

@ -1,18 +0,0 @@
<title>Platform Specific BOINC Optimization</title>
<body bgcolor=ffffff>
<h2>Platform Specific BOINC Optimization</h2>
<p>
There are currently no plans to do official BOINC releases
optimized for specific platforms.
Since BOINC uses so little
CPU time, the savings from this would be on the order of
CPU seconds per actual days.
<p>
Developers may compile
their own version of the BOINC client optimized for a specific platform.
<p>
Projects which use the BOINC infrastructure may release
their applications in optimized form.
Care should be taken
to ensure the optimized versions are sent only to the
proper processors.

View File

@ -3,13 +3,14 @@ require_once("docutil.php");
page_head("Participating in BOINC projects");
echo "
<ul>
<li> <a href="account.html">Joining a project</a>
<li> <a href="client.html">Running the client</a>
<li> <a href="prefs.html">Preferences</a>
<li> <a href="startup.html">Participating in multiple projects</a>
<li> <a href="credit.html">Computation credit</a>
<li> <a href="teams.html">Teams</a>
<li> <a href="db_dump.html">Downloading statistics data</a>
<li> <a href=account.php>Joining a project</a>
<li> <a href=client.php>Running the BOINC client</a>
<li> <a href=work_buffer.php>Work buffering</a>
<li> <a href=prefs.php>Preferences</a>
<li> <a href=startup.php>Participating in multiple projects</a>
<li> <a href=credit.php>Computation credit</a>
<li> <a href=teams.php>Teams</a>
<li> <a href=db_dump.php>Downloading statistics data</a>
</ul>
";
page_tail();

View File

@ -75,7 +75,7 @@ for both 2.6 and 2.7, even if they're identical.
<p>
BOINC allows applications to exploit specific architectures,
but places the burden of recognizing the architecture
on the application developer.
on the application.
<p>
In other words, if you want to make a version of your application

View File

@ -1,6 +1,7 @@
<title>Preferences</title>
<body bgcolor=ffffff>
<h2>Preferences</h2>
<?
require_once("docutil.php");
page_head("Preferences");
echo "
<p>
You can specify <b>preferences</b> determining and limiting
how BOINC uses your computers.
@ -48,14 +49,17 @@ 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 differences preferences for them.
In addition to your "primary preferences"
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"
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

@ -6,67 +6,59 @@ echo "
A <b>result</b> describes an instance of a computation, either unstarted,
in progress, or completed.
The attributes of a result include:
";
list_start();
list_item(
"name",
"A text string, unique across all results in the project."
);
list_item(
"workunit name", ""
);
list_item("output files",
"A list of the names of the output files,
and the names by which the application refers to them."
);
list_item("server state",
"Values include:
<ul>
<li> Inactive (not ready to dispatch)
<li> Unsent (ready to sent to a client, but not sent)
<li> In progress (sent, not done)
<li> Done successfully
<li> Timed out
<li> Done with error
<li> Not needed (work unit was finalized before this result was sent)
</ul>"
);
list_end();
<dl>
<dt><b>name</b><dd>
The name of the result (unique across all results in the project).
<dt><b>workunit name</b><dd>
<dt><b>output files</b><dd>
A list of the names of the output files,
and the names by which the application refers to them.
<dt><b>state</b><dd>
Values include:
<ul>
<li> Inactive (not ready to dispatch)
<li> Unsent (ready to dispatch, but not dispatched)
<li> In progress (dispatched, not done)
<li> Done successfully
<li> Timed out
<li> Done with error
</ul>
<dt><b>host</b><dd>
The host that executed the computation.
<dt><b>CPU time</b><dd>
The CPU time that was used.
<dt><b>exit status</b><dd>
</dl>
echo "
<p>
The following attributes are defined after the result is completed:
<ul>
<li> An XML document giving the sizes and checksums of its output
files (filled in after the result is completed).
<li> The stderr output of the result.
<li> The host that was sent the result.
<li> The times when the result was received.
</ul>
<p>
Results are normally created using the
<a href=tools_work.html>create_work</a> utility.
<p>
The XML document listing the output files has the form: <pre>
&lt;file_info>...&lt;/file_info>
[ ... ]
&lt;result>
&lt;name>foobar&lt;/name>
&lt;wu_name>blah&lt;/wu_name>
&lt;exit_status>blah&lt;/exit_status>
&lt;file_ref>...&lt;/file_ref>
[ ... ]
&lt;/result>
</pre>
The components are:
<ul>
<li> The <b>&lt;name></b> element is the result name.
<li> The <b>&lt;wu_name></b> element is the workunit name.
<li> Each <b>&lt;file_ref></b> element is an association to an
output file, described by a corresponding <b>&lt;file_info></b> element.
</ul>
<p>
The XML document describing the sizes and checksums of the output
files is just a list of <b>&lt;file_info></b> elements, with the
<b>nbytes</b> and <b>md5_cksum</b> fields present.
The project back end
must parse this field to find the locations and checksums of output files.
Additional attributes are defined after the result is completed:
";
list_start();
list_item("host",
"The host that executed the computation"
);
list_item("exit status", "");
list_item("CPU time",
"The CPU time that was used."
);
list_item("output file info",
"The sizes and checksums of its output files"
);
list_item("stderr",
"The stderr output of the computation"
);
list_item("host",
"The host that was sent the result."
);
list_item("received time",
"The time when the result was received."
);
list_end();
echo"
";
page_tail();
?>

View File

@ -1,121 +0,0 @@
#FIG 3.2
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
0 32 #c7b696
0 33 #effbff
0 34 #dfcba6
0 35 #414141
0 36 #868286
0 37 #c7c3c7
0 38 #e7e3e7
0 39 #8e8e8e
0 40 #aeaaae
0 41 #515551
0 42 #414141
0 43 #868286
0 44 #c7c3c7
0 45 #868286
0 46 #c7c3c7
0 47 #e7e3e7
0 48 #8e8e8e
0 49 #8e8e8e
0 50 #414141
0 51 #868286
0 52 #c7c3c7
0 53 #e7e3e7
0 54 #414141
0 55 #868286
0 56 #c7c3c7
0 57 #e7e3e7
0 58 #868286
0 59 #c7c3c7
0 60 #e7e3e7
0 61 #c7b696
0 62 #effbff
0 63 #dfcba6
0 64 #c7b696
0 65 #effbff
0 66 #dfcba6
0 67 #aeaaae
0 68 #515551
0 69 #8e8e8e
0 70 #414141
0 71 #868286
0 72 #c7c3c7
0 73 #e7e3e7
0 74 #414141
0 75 #868286
0 76 #c7c3c7
0 77 #e7e3e7
0 78 #868286
0 79 #c7c3c7
0 80 #e7e3e7
0 81 #414141
0 82 #868286
0 83 #c7c3c7
0 84 #414141
0 85 #c7c3c7
0 86 #e7e3e7
0 87 #414141
0 88 #868286
0 89 #c7c3c7
0 90 #8e8e8e
0 91 #414141
0 92 #868286
0 93 #c7c3c7
0 94 #e7e3e7
0 95 #414141
0 96 #868286
0 97 #c7c3c7
0 98 #e7e3e7
0 99 #bebebe
0 100 #515151
0 101 #000049
0 102 #797979
0 103 #303430
0 104 #414541
0 105 #414141
0 106 #868286
0 107 #c7c3c7
0 108 #e7e3e7
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 1725 4950 2475
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 2925 4950 3750
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4575 2475 5325 2475 5325 2925 4575 2925 4575 2475
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4500 3750 5400 3750 5400 4200 4500 4200 4500 3750
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4575 5175 5400 5175 5400 5625 4575 5625 4575 5175
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4500 3750 5400 3750 5400 4200 4500 4200 4500 3750
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4575 5175 5400 5175 5400 5625 4575 5625 4575 5175
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 1 2
0 0 1.00 60.00 120.00
5250 4200 5250 5175
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
5100 4200 5100 5175
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 1 4
0 0 1.00 60.00 120.00
4500 3975 2025 3975 2025 5400 4575 5400
4 0 0 50 0 16 12 0.0000 4 135 435 5100 2100 initial\001
4 0 0 50 0 16 12 0.0000 4 135 330 4800 2775 INIT\001
4 0 0 50 0 16 12 0.0000 4 135 645 4650 4050 READY\001
4 0 0 50 0 16 12 0.0000 4 135 540 4725 5475 DONE\001
4 0 0 50 0 16 12 0.0000 4 180 3870 5100 3150 scheduler: got reply and server_state = OVER\001
4 0 0 50 0 16 12 0.0000 4 165 3015 5100 3375 timeout_check: all results are OVER\001
4 0 0 50 0 16 12 0.0000 4 135 4815 5100 3600 assimilator: all results are OVER or result is not canonical\001
4 0 0 50 0 16 12 0.0000 4 180 3870 525 3825 scheduler: got reply and server_state = OVER\001
4 0 0 50 0 16 12 0.0000 4 165 2550 2475 4950 file_deleter: tried to delete files\001
4 0 0 50 0 16 12 0.0000 4 180 3870 5400 4500 scheduler: get reply and server_state = OVER\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -1,2 +0,0 @@
<title>Result processing</title>
<h2>Result processing</h2>

View File

@ -1,113 +0,0 @@
#FIG 3.2
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
0 32 #c7b696
0 33 #effbff
0 34 #dfcba6
0 35 #414141
0 36 #868286
0 37 #c7c3c7
0 38 #e7e3e7
0 39 #8e8e8e
0 40 #aeaaae
0 41 #515551
0 42 #414141
0 43 #868286
0 44 #c7c3c7
0 45 #868286
0 46 #c7c3c7
0 47 #e7e3e7
0 48 #8e8e8e
0 49 #8e8e8e
0 50 #414141
0 51 #868286
0 52 #c7c3c7
0 53 #e7e3e7
0 54 #414141
0 55 #868286
0 56 #c7c3c7
0 57 #e7e3e7
0 58 #868286
0 59 #c7c3c7
0 60 #e7e3e7
0 61 #c7b696
0 62 #effbff
0 63 #dfcba6
0 64 #c7b696
0 65 #effbff
0 66 #dfcba6
0 67 #aeaaae
0 68 #515551
0 69 #8e8e8e
0 70 #414141
0 71 #868286
0 72 #c7c3c7
0 73 #e7e3e7
0 74 #414141
0 75 #868286
0 76 #c7c3c7
0 77 #e7e3e7
0 78 #868286
0 79 #c7c3c7
0 80 #e7e3e7
0 81 #414141
0 82 #868286
0 83 #c7c3c7
0 84 #414141
0 85 #c7c3c7
0 86 #e7e3e7
0 87 #414141
0 88 #868286
0 89 #c7c3c7
0 90 #8e8e8e
0 91 #414141
0 92 #868286
0 93 #c7c3c7
0 94 #e7e3e7
0 95 #414141
0 96 #868286
0 97 #c7c3c7
0 98 #e7e3e7
0 99 #bebebe
0 100 #515151
0 101 #000049
0 102 #797979
0 103 #303430
0 104 #414541
0 105 #414141
0 106 #868286
0 107 #c7c3c7
0 108 #e7e3e7
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 1725 4950 2475
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 2925 4950 3750
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 4200 4950 5175
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4
0 0 1.00 60.00 120.00
4425 2700 3975 2700 3975 5400 4575 5400
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4575 5175 5475 5175 5475 5625 4575 5625 4575 5175
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4275 3750 5775 3750 5775 4200 4275 4200 4275 3750
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4425 2475 5550 2475 5550 2925 4425 2925 4425 2475
4 0 0 50 0 16 12 0.0000 4 135 435 5100 2100 initial\001
4 0 0 50 0 16 12 0.0000 4 135 2280 5175 3375 scheduler: sends this result\001
4 0 0 50 0 16 12 0.0000 4 180 3750 5175 4575 scheduler: get completion message from host\001
4 0 0 50 0 16 12 0.0000 4 135 525 4800 5475 OVER\001
4 0 0 50 0 16 12 0.0000 4 165 1290 4425 4050 IN_PROGRESS\001
4 0 0 50 0 16 12 0.0000 4 135 735 4650 2775 UNSENT\001
4 0 0 50 0 16 12 0.0000 4 180 3405 5175 4875 or timeout_check: now > report_deadline\001
4 0 0 50 0 16 12 0.0000 4 165 2625 1200 4275 or timeout_check: WU has error\001
4 0 0 50 0 16 12 0.0000 4 180 3375 450 3900 validate: got canonical result for this WU\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -1,113 +0,0 @@
#FIG 3.2
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
0 32 #c6b694
0 33 #effbff
0 34 #decba5
0 35 #424142
0 36 #848284
0 37 #c6c3c6
0 38 #e7e3e7
0 39 #8c8e8c
0 40 #adaaad
0 41 #525552
0 42 #424142
0 43 #848284
0 44 #c6c3c6
0 45 #848284
0 46 #c6c3c6
0 47 #e7e3e7
0 48 #8c8e8c
0 49 #8c8e8c
0 50 #424142
0 51 #848284
0 52 #c6c3c6
0 53 #e7e3e7
0 54 #424142
0 55 #848284
0 56 #c6c3c6
0 57 #e7e3e7
0 58 #848284
0 59 #c6c3c6
0 60 #e7e3e7
0 61 #c6b694
0 62 #effbff
0 63 #decba5
0 64 #c6b694
0 65 #effbff
0 66 #decba5
0 67 #adaaad
0 68 #525552
0 69 #8c8e8c
0 70 #424142
0 71 #848284
0 72 #c6c3c6
0 73 #e7e3e7
0 74 #424142
0 75 #848284
0 76 #c6c3c6
0 77 #e7e3e7
0 78 #848284
0 79 #c6c3c6
0 80 #e7e3e7
0 81 #424142
0 82 #848284
0 83 #c6c3c6
0 84 #424142
0 85 #c6c3c6
0 86 #e7e3e7
0 87 #424142
0 88 #848284
0 89 #c6c3c6
0 90 #8c8e8c
0 91 #424142
0 92 #848284
0 93 #c6c3c6
0 94 #e7e3e7
0 95 #424142
0 96 #848284
0 97 #c6c3c6
0 98 #e7e3e7
0 99 #bdbebd
0 100 #525152
0 101 #00004a
0 102 #7b797b
0 103 #313431
0 104 #424542
0 105 #424142
0 106 #848284
0 107 #c6c3c6
0 108 #e7e3e7
6 5325 3750 6225 4200
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
5325 3750 6225 3750 6225 4200 5325 4200 5325 3750
4 0 0 50 0 16 12 0.0000 4 135 555 5475 4050 VALID\001
-6
6 3675 3750 4575 4200
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
3675 3750 4575 3750 4575 4200 3675 4200 3675 3750
4 0 0 50 0 16 12 0.0000 4 135 735 3825 4050 INVALID\001
-6
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 1725 4950 2475
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4575 2475 5325 2475 5325 2925 4575 2925 4575 2475
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4800 2925 4125 3750
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
5175 2925 5850 3750
4 0 0 50 0 16 12 0.0000 4 135 435 5100 2100 initial\001
4 0 0 50 0 16 12 0.0000 4 135 330 4800 2775 INIT\001
4 0 0 50 0 16 12 0.0000 4 135 5100 5625 3375 validate: outcome = SUCCESS and matched canonical result\001
4 0 0 50 0 16 12 0.0000 4 180 3870 450 3375 scheduler: got reply and server_state = OVER\001
4 0 0 50 0 16 12 0.0000 4 135 3165 450 3600 validate: didn't match canonical result\001
4 0 0 50 0 16 12 0.0000 4 180 3015 450 3150 scheduler: got reply with client error\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

View File

@ -79,7 +79,7 @@ This mechanism is
designed to prevent attackers from breaking into a BOINC server and
distributing a false key pair.
<p>
<b>Overrun of data server</b>
<b>Denial of server attacks on data servers</b>
<p>
Each result file has an associated maximum size.
Each project has a
@ -92,7 +92,8 @@ ensures that the amount of data uploaded does not exceed the maximum size.
<p>
<b>Theft of participant account information by server attack</b>
<p>
Each project must address this using conventional security practices.
Each project must address theft of private account information
(e.g. email addresses) using conventional security practices.
All server machines should be protected by a firewall, and
should have all unused network services disabled.
Access to these machines should be done only with encrypted protocols like SSH.
@ -105,6 +106,10 @@ attack could discredit all BOINC-based projects, and
public-participation computing in general.
<p>
<b>Theft of participant account information by network attack</b>
Attackers sniffing network traffic could get user's account IDs,
and use them to get the user's email address,
or change the user's preferences.
<p>
<b>Theft of project files</b>
<p>

View File

@ -1,6 +1,7 @@
<title>Participating in multiple projects</title>
<body bgcolor=ffffff>
<h2>Participating in multiple projects</h2>
<?
require_once("docutil.php");
page_head("Participating in multiple projects");
echo "
<p>
You can join a second and subsequent projects as follows.
@ -35,3 +36,6 @@ 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

@ -1,5 +1,7 @@
<title>Teams</title>
<h2>Teams</h2>
<?
require_once("docutil.php");
page_head("Teams");
echo "
<p>
Participants in a project can form <b>teams</b>.
@ -41,3 +43,6 @@ The founder of a team has some additional capabilities:
<li> Remove members from the team.
<li> Disband the team.
</ul>
";
page_tail();
?>

View File

@ -1,23 +0,0 @@
<title>Security tools</title>
<body bgcolor=ffffff>
<h3>Security tools</h3>
<p>
The program <b>lib/crypt_prog</b> can be used for several purposes:
<br>
<dl>
<dt>crypt_prog -genkey n private_keyfile public_keyfile</b>
<dd>
Create a key pair with n bits (always use 1024).
Write the keys in encoded ASCII form to the indicated files.
<dt>crypt_prog -sign file private_keyfile</b>
<dd>
Create a digital signature for the given file. Write it in encoded
ASCII to stdout.
<dt>crypt_prog -verify file signature_file public_keyfile</b>
<dd>
Verify a signature for the given file.
<dt>crypt_prog -test_crypt private_keyfile public_keyfile</b>
<dd>
Perform an internal test, checking that encryption followed by
decryption works.
</dl>

View File

@ -1 +0,0 @@
Delete this file

View File

@ -125,8 +125,8 @@ list_end();
echo "
<p>
The <a href=tools_work.html>create_work</a> utility program provides a
simplified interface for creating workunits.
BOINC provides a <a href=tools_work.php>utility program and C function</a>
for creating workunits.
";
page_tail();

24
doc/work_buffer.php Normal file
View File

@ -0,0 +1,24 @@
<?
require_once("docutil.php");
page_head("Work buffering");
echo "
<p>
Each BOINC client
maintains an estimate of the amount of work remaining
(i.e. the time until one of its processors will be idle).
Each host also has two preferences:
the <b>minimum work</b> and the
<b>maximum work</b>
(these are part of your 'general preferences', discussed elsewhere).
<p>
Normally the work remaining is between these two limits.
When the work remaining reaches minimum level,
the client contacts one or more scheduling servers,
and attempts to get enough work to exceed the maximum level.
<p>
This scheme allows hosts that are sporadically connected
(because they're portable or have modem-based connections)
to avoid becoming idle due to lack of work.
";
page_tail();
?>

View File

@ -1,112 +0,0 @@
#FIG 3.2
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
0 32 #c7b696
0 33 #effbff
0 34 #dfcba6
0 35 #414141
0 36 #868286
0 37 #c7c3c7
0 38 #e7e3e7
0 39 #8e8e8e
0 40 #aeaaae
0 41 #515551
0 42 #414141
0 43 #868286
0 44 #c7c3c7
0 45 #868286
0 46 #c7c3c7
0 47 #e7e3e7
0 48 #8e8e8e
0 49 #8e8e8e
0 50 #414141
0 51 #868286
0 52 #c7c3c7
0 53 #e7e3e7
0 54 #414141
0 55 #868286
0 56 #c7c3c7
0 57 #e7e3e7
0 58 #868286
0 59 #c7c3c7
0 60 #e7e3e7
0 61 #c7b696
0 62 #effbff
0 63 #dfcba6
0 64 #c7b696
0 65 #effbff
0 66 #dfcba6
0 67 #aeaaae
0 68 #515551
0 69 #8e8e8e
0 70 #414141
0 71 #868286
0 72 #c7c3c7
0 73 #e7e3e7
0 74 #414141
0 75 #868286
0 76 #c7c3c7
0 77 #e7e3e7
0 78 #868286
0 79 #c7c3c7
0 80 #e7e3e7
0 81 #414141
0 82 #868286
0 83 #c7c3c7
0 84 #414141
0 85 #c7c3c7
0 86 #e7e3e7
0 87 #414141
0 88 #868286
0 89 #c7c3c7
0 90 #8e8e8e
0 91 #414141
0 92 #868286
0 93 #c7c3c7
0 94 #e7e3e7
0 95 #414141
0 96 #868286
0 97 #c7c3c7
0 98 #e7e3e7
0 99 #bebebe
0 100 #515151
0 101 #000049
0 102 #797979
0 103 #303430
0 104 #414541
0 105 #414141
0 106 #868286
0 107 #c7c3c7
0 108 #e7e3e7
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 1725 4950 2475
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 2925 4950 3750
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4575 2475 5325 2475 5325 2925 4575 2925 4575 2475
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4500 3750 5400 3750 5400 4200 4500 4200 4500 3750
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4575 5175 5400 5175 5400 5625 4575 5625 4575 5175
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4500 3750 5400 3750 5400 4200 4500 4200 4500 3750
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4575 5175 5400 5175 5400 5625 4575 5625 4575 5175
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 4200 4950 5175
4 0 0 50 0 16 12 0.0000 4 135 435 5100 2100 initial\001
4 0 0 50 0 16 12 0.0000 4 135 330 4800 2775 INIT\001
4 0 0 50 0 16 12 0.0000 4 135 645 4650 4050 READY\001
4 0 0 50 0 16 12 0.0000 4 135 540 4725 5475 DONE\001
4 0 0 50 0 16 12 0.0000 4 135 1395 5100 4650 assimilator: done\001
4 0 0 50 0 16 12 0.0000 4 135 2625 5100 3525 validate: found canonical result\001
4 0 0 50 0 16 12 0.0000 4 165 2400 5100 3225 timeout_check: WU has error\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1,113 +0,0 @@
#FIG 3.2
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
0 32 #c7b696
0 33 #effbff
0 34 #dfcba6
0 35 #414141
0 36 #868286
0 37 #c7c3c7
0 38 #e7e3e7
0 39 #8e8e8e
0 40 #aeaaae
0 41 #515551
0 42 #414141
0 43 #868286
0 44 #c7c3c7
0 45 #868286
0 46 #c7c3c7
0 47 #e7e3e7
0 48 #8e8e8e
0 49 #8e8e8e
0 50 #414141
0 51 #868286
0 52 #c7c3c7
0 53 #e7e3e7
0 54 #414141
0 55 #868286
0 56 #c7c3c7
0 57 #e7e3e7
0 58 #868286
0 59 #c7c3c7
0 60 #e7e3e7
0 61 #c7b696
0 62 #effbff
0 63 #dfcba6
0 64 #c7b696
0 65 #effbff
0 66 #dfcba6
0 67 #aeaaae
0 68 #515551
0 69 #8e8e8e
0 70 #414141
0 71 #868286
0 72 #c7c3c7
0 73 #e7e3e7
0 74 #414141
0 75 #868286
0 76 #c7c3c7
0 77 #e7e3e7
0 78 #868286
0 79 #c7c3c7
0 80 #e7e3e7
0 81 #414141
0 82 #868286
0 83 #c7c3c7
0 84 #414141
0 85 #c7c3c7
0 86 #e7e3e7
0 87 #414141
0 88 #868286
0 89 #c7c3c7
0 90 #8e8e8e
0 91 #414141
0 92 #868286
0 93 #c7c3c7
0 94 #e7e3e7
0 95 #414141
0 96 #868286
0 97 #c7c3c7
0 98 #e7e3e7
0 99 #bebebe
0 100 #515151
0 101 #000049
0 102 #797979
0 103 #303430
0 104 #414541
0 105 #414141
0 106 #868286
0 107 #c7c3c7
0 108 #e7e3e7
6 4575 5175 6375 5625
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4575 5175 6375 5175 6375 5625 4575 5625 4575 5175
4 0 0 50 0 16 12 0.0000 4 165 1500 4725 5475 COULDNT_SEND\001
-6
6 4500 3750 7500 4200
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4500 3750 7500 3750 7500 4200 4500 4200 4500 3750
4 0 0 50 0 16 12 0.0000 4 165 2730 4650 4050 TOO_MANY_ERROR_RESULTS\001
-6
6 4650 2475 6975 2925
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4650 2475 6975 2475 6975 2925 4650 2925 4650 2475
4 0 0 50 0 16 12 0.0000 4 165 1995 4800 2775 TOO_MANY_RESULTS\001
-6
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 2100 4950 2475
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 3300 4950 3750
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 4650 4950 5175
4 0 0 50 0 16 12 0.0000 4 180 3120 5100 3525 timeout_check: too many error results\001
4 0 0 50 0 16 12 0.0000 4 180 2670 5100 2325 timeout_check: too many results\001
4 0 0 50 0 16 12 0.0000 4 165 4980 5100 4950 timeout_check: some result has outcome=COULDNT_SEND\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1,112 +0,0 @@
#FIG 3.2
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
0 32 #c7b696
0 33 #effbff
0 34 #dfcba6
0 35 #414141
0 36 #868286
0 37 #c7c3c7
0 38 #e7e3e7
0 39 #8e8e8e
0 40 #aeaaae
0 41 #515551
0 42 #414141
0 43 #868286
0 44 #c7c3c7
0 45 #868286
0 46 #c7c3c7
0 47 #e7e3e7
0 48 #8e8e8e
0 49 #8e8e8e
0 50 #414141
0 51 #868286
0 52 #c7c3c7
0 53 #e7e3e7
0 54 #414141
0 55 #868286
0 56 #c7c3c7
0 57 #e7e3e7
0 58 #868286
0 59 #c7c3c7
0 60 #e7e3e7
0 61 #c7b696
0 62 #effbff
0 63 #dfcba6
0 64 #c7b696
0 65 #effbff
0 66 #dfcba6
0 67 #aeaaae
0 68 #515551
0 69 #8e8e8e
0 70 #414141
0 71 #868286
0 72 #c7c3c7
0 73 #e7e3e7
0 74 #414141
0 75 #868286
0 76 #c7c3c7
0 77 #e7e3e7
0 78 #868286
0 79 #c7c3c7
0 80 #e7e3e7
0 81 #414141
0 82 #868286
0 83 #c7c3c7
0 84 #414141
0 85 #c7c3c7
0 86 #e7e3e7
0 87 #414141
0 88 #868286
0 89 #c7c3c7
0 90 #8e8e8e
0 91 #414141
0 92 #868286
0 93 #c7c3c7
0 94 #e7e3e7
0 95 #414141
0 96 #868286
0 97 #c7c3c7
0 98 #e7e3e7
0 99 #bebebe
0 100 #515151
0 101 #000049
0 102 #797979
0 103 #303430
0 104 #414541
0 105 #414141
0 106 #868286
0 107 #c7c3c7
0 108 #e7e3e7
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 1725 4950 2475
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 2925 4950 3750
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4575 2475 5325 2475 5325 2925 4575 2925 4575 2475
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4500 3750 5400 3750 5400 4200 4500 4200 4500 3750
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4575 5175 5400 5175 5400 5625 4575 5625 4575 5175
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4500 3750 5400 3750 5400 4200 4500 4200 4500 3750
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4575 5175 5400 5175 5400 5625 4575 5625 4575 5175
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 4200 4950 5175
4 0 0 50 0 16 12 0.0000 4 135 435 5100 2100 initial\001
4 0 0 50 0 16 12 0.0000 4 135 330 4800 2775 INIT\001
4 0 0 50 0 16 12 0.0000 4 135 645 4650 4050 READY\001
4 0 0 50 0 16 12 0.0000 4 135 540 4725 5475 DONE\001
4 0 0 50 0 16 12 0.0000 4 165 6960 5100 3150 timeout_check: all results have server_state=OVER and wu.assimilate_state=DONE\001
4 0 0 50 0 16 12 0.0000 4 180 6690 5100 3375 assimilate: all results have server_state=OVER (and wu.assimilate_state=DONE)\001
4 0 0 50 0 16 12 0.0000 4 165 2550 2250 4725 file_deleter: tried to delete files\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -1,106 +0,0 @@
#FIG 3.2
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
0 32 #c7b696
0 33 #effbff
0 34 #dfcba6
0 35 #414141
0 36 #868286
0 37 #c7c3c7
0 38 #e7e3e7
0 39 #8e8e8e
0 40 #aeaaae
0 41 #515551
0 42 #414141
0 43 #868286
0 44 #c7c3c7
0 45 #868286
0 46 #c7c3c7
0 47 #e7e3e7
0 48 #8e8e8e
0 49 #8e8e8e
0 50 #414141
0 51 #868286
0 52 #c7c3c7
0 53 #e7e3e7
0 54 #414141
0 55 #868286
0 56 #c7c3c7
0 57 #e7e3e7
0 58 #868286
0 59 #c7c3c7
0 60 #e7e3e7
0 61 #c7b696
0 62 #effbff
0 63 #dfcba6
0 64 #c7b696
0 65 #effbff
0 66 #dfcba6
0 67 #aeaaae
0 68 #515551
0 69 #8e8e8e
0 70 #414141
0 71 #868286
0 72 #c7c3c7
0 73 #e7e3e7
0 74 #414141
0 75 #868286
0 76 #c7c3c7
0 77 #e7e3e7
0 78 #868286
0 79 #c7c3c7
0 80 #e7e3e7
0 81 #414141
0 82 #868286
0 83 #c7c3c7
0 84 #414141
0 85 #c7c3c7
0 86 #e7e3e7
0 87 #414141
0 88 #868286
0 89 #c7c3c7
0 90 #8e8e8e
0 91 #414141
0 92 #868286
0 93 #c7c3c7
0 94 #e7e3e7
0 95 #414141
0 96 #868286
0 97 #c7c3c7
0 98 #e7e3e7
0 99 #bebebe
0 100 #515151
0 101 #000049
0 102 #797979
0 103 #303430
0 104 #414541
0 105 #414141
0 106 #868286
0 107 #c7c3c7
0 108 #e7e3e7
6 4500 4050 5400 4500
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4500 4050 5400 4050 5400 4500 4500 4500 4500 4050
4 0 0 50 0 16 12 0.0000 4 135 465 4650 4350 TRUE\001
-6
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 1725 4950 2475
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4575 2475 5325 2475 5325 2925 4575 2925 4575 2475
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4800 2925 4800 4050
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 1 2
0 0 1.00 60.00 120.00
5175 2925 5175 4050
4 0 0 50 0 16 12 0.0000 4 135 435 5100 2100 initial\001
4 0 0 50 0 16 12 0.0000 4 135 600 4650 2775 FALSE\001
4 0 0 50 0 16 12 0.0000 4 180 3660 975 3525 scheduler: got reply with client_state DONE\001
4 0 0 50 0 16 12 0.0000 4 180 2010 5400 3525 validate: done checking\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,108 +0,0 @@
#FIG 3.2
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
0 32 #c7b696
0 33 #effbff
0 34 #dfcba6
0 35 #414141
0 36 #868286
0 37 #c7c3c7
0 38 #e7e3e7
0 39 #8e8e8e
0 40 #aeaaae
0 41 #515551
0 42 #414141
0 43 #868286
0 44 #c7c3c7
0 45 #868286
0 46 #c7c3c7
0 47 #e7e3e7
0 48 #8e8e8e
0 49 #8e8e8e
0 50 #414141
0 51 #868286
0 52 #c7c3c7
0 53 #e7e3e7
0 54 #414141
0 55 #868286
0 56 #c7c3c7
0 57 #e7e3e7
0 58 #868286
0 59 #c7c3c7
0 60 #e7e3e7
0 61 #c7b696
0 62 #effbff
0 63 #dfcba6
0 64 #c7b696
0 65 #effbff
0 66 #dfcba6
0 67 #aeaaae
0 68 #515551
0 69 #8e8e8e
0 70 #414141
0 71 #868286
0 72 #c7c3c7
0 73 #e7e3e7
0 74 #414141
0 75 #868286
0 76 #c7c3c7
0 77 #e7e3e7
0 78 #868286
0 79 #c7c3c7
0 80 #e7e3e7
0 81 #414141
0 82 #868286
0 83 #c7c3c7
0 84 #414141
0 85 #c7c3c7
0 86 #e7e3e7
0 87 #414141
0 88 #868286
0 89 #c7c3c7
0 90 #8e8e8e
0 91 #414141
0 92 #868286
0 93 #c7c3c7
0 94 #e7e3e7
0 95 #414141
0 96 #868286
0 97 #c7c3c7
0 98 #e7e3e7
0 99 #bebebe
0 100 #515151
0 101 #000049
0 102 #797979
0 103 #303430
0 104 #414541
0 105 #414141
0 106 #868286
0 107 #c7c3c7
0 108 #e7e3e7
6 4275 2475 5625 2925
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4275 2475 5625 2475 5625 2925 4275 2925 4275 2475
4 0 0 50 0 16 12 0.0000 4 135 945 4425 2775 NONZERO\001
-6
6 4575 4050 5325 4500
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
4575 4050 5325 4050 5325 4500 4575 4500 4575 4050
4 0 0 50 0 16 12 0.0000 4 135 525 4650 4350 ZERO\001
-6
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4950 1725 4950 2475
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
0 0 1.00 60.00 120.00
4800 2925 4800 4050
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4
0 0 1.00 60.00 120.00
5625 2550 6225 2550 6225 2850 5625 2850
4 0 0 50 0 16 12 0.0000 4 135 435 5100 2100 initial\001
4 0 0 50 0 16 12 0.0000 4 165 2100 6375 2775 timeout_check: otherwise\001
4 0 0 50 0 16 12 0.0000 4 165 5250 5025 3525 timeout_check: all results are OVER and validate_state=DONE\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -116,13 +116,9 @@ void handle_wu(DB_WORKUNIT& wu) {
}
// scan this WU's results, and check the unchecked ones
// TODO: do we have an index on these fields?
// maybe better just to enum on workunitid
//
// sprintf(buf, "where workunitid=%d", wu.id);
// while (!result.enumerate(buf)) {
// if (result.validate_state == VALIDATE_STATE_INIT
// && result.server_state == RESULT_SERVER_STATE_OVER
// && result.outcome == RESULT_OUTCOME_SUCCESS
// ) {
sprintf(buf, "where workunitid=%d and validate_state=%d and server_state=%d and outcome=%d",
wu.id, VALIDATE_STATE_INIT, RESULT_SERVER_STATE_OVER, RESULT_OUTCOME_SUCCESS
);
@ -192,6 +188,8 @@ void handle_wu(DB_WORKUNIT& wu) {
++log_messages;
// sprintf(buf, "where workunitid=%d", wu.id);
// TODO: do we have an index on these fields?
// maybe better to enum on workunitid
// while (!result.enumerate(buf)) {
// if (result.server_state == RESULT_SERVER_STATE_OVER
// && result.outcome == RESULT_OUTCOME_SUCCESS

View File

@ -46,8 +46,7 @@ int get_output_file_path(RESULT const& result, string& path) {
// - if N==2, give min credit
// - if N>2, toss out min and max, give average of rest
//
double median_mean_credit(vector<RESULT> const& results)
{
double median_mean_credit(vector<RESULT> const& results) {
typedef vector<RESULT>::const_iterator it;
it it_low = results.end(), it_high;
@ -55,12 +54,9 @@ double median_mean_credit(vector<RESULT> const& results)
size_t n_valid = 0;
for (it i = results.begin(); i != results.end(); ++i)
{
for (it i = results.begin(); i != results.end(); ++i) {
if (i->validate_state != VALIDATE_STATE_VALID) continue;
++n_valid;
if (it_low == results.end()) {
it_low = it_high = i;
credit_low = credit_high = i->claimed_credit;
@ -88,8 +84,7 @@ double median_mean_credit(vector<RESULT> const& results)
} else {
double sum = 0;
for (it i = results.begin(); i != results.end(); ++i)
{
for (it i = results.begin(); i != results.end(); ++i) {
if (i == it_low) continue;
if (i == it_high) continue;
if (i->validate_state != VALIDATE_STATE_VALID) continue;
@ -116,11 +111,12 @@ double median_mean_credit(vector<RESULT> const& results)
//
// see validate_test.C example usage.
//
int generic_check_set_majority(vector<RESULT>& results, int& canonicalid, double& credit,
init_result_f init_result_f,
check_pair_with_data_f check_pair_with_data_f,
cleanup_result_f cleanup_result_f)
{
int generic_check_set_majority(
vector<RESULT>& results, int& canonicalid, double& credit,
init_result_f init_result_f,
check_pair_with_data_f check_pair_with_data_f,
cleanup_result_f cleanup_result_f
) {
assert (!results.empty());
vector<void*> data;
@ -128,8 +124,7 @@ int generic_check_set_majority(vector<RESULT>& results, int& canonicalid, double
data.resize(n);
// 1. INITIALIZE DATA
for (i = 0; i != n; ++i)
{
for (i = 0; i != n; ++i) {
if (init_result_f(results[i], data[i])) {
log_messages.printf(
SchedMessages::CRITICAL,
@ -140,8 +135,7 @@ int generic_check_set_majority(vector<RESULT>& results, int& canonicalid, double
}
// 2. COMPARE
for (i = 0; i != n; ++i)
{
for (i = 0; i != n; ++i) {
vector<bool> matches;
matches.resize(n);
neq = 0;
@ -179,11 +173,12 @@ cleanup:
return 0;
}
int generic_check_pair(RESULT const& r1, RESULT const& r2, bool& match,
init_result_f init_result_f,
check_pair_with_data_f check_pair_with_data_f,
cleanup_result_f cleanup_result_f)
{
int generic_check_pair(
RESULT const& r1, RESULT const& r2, bool& match,
init_result_f init_result_f,
check_pair_with_data_f check_pair_with_data_f,
cleanup_result_f cleanup_result_f
) {
void* data1;
void* data2;
int retval;

View File

@ -31,13 +31,17 @@ typedef int (*check_pair_with_data_f)(RESULT const&, void*, RESULT const&, void*
typedef int (*cleanup_result_f)(RESULT const&, void*);
int get_output_file_path(RESULT const& result, string& path);
double median_mean_credit(vector<RESULT> const& results);
int generic_check_set_majority(vector<RESULT>& results, int& canonicalid, double& credit,
init_result_f init_result_f,
check_pair_with_data_f check_pair_with_data_f,
cleanup_result_f cleanup_result_f);
int generic_check_pair(RESULT const& r1, RESULT const& r2, bool& match,
init_result_f init_result_f,
check_pair_with_data_f check_pair_with_data_f,
cleanup_result_f cleanup_result_f);
int generic_check_set_majority(
vector<RESULT>& results, int& canonicalid, double& credit,
init_result_f init_result_f,
check_pair_with_data_f check_pair_with_data_f,
cleanup_result_f cleanup_result_f
);
int generic_check_pair(
RESULT const& r1, RESULT const& r2, bool& match,
init_result_f init_result_f,
check_pair_with_data_f check_pair_with_data_f,
cleanup_result_f cleanup_result_f
);
#endif

2
todo
View File

@ -1,5 +1,7 @@
DON'T ADD ANYTHING TO HERE. USE THE TASKBASE INSTEAD.
encrypt IDs in URLs (e.g. host)
Use GlobalMemoryStatusEx when possible on Windows
Take p_ncpus into account when assigned work to a host
File upload handler should check for disk full,

View File

@ -170,7 +170,6 @@ int main(int argc, char** argv) {
}
wu.appid = app.id;
wu.transition_time = MAXINT;
retval = read_key_file(keyfile, key);
if (retval) {