*** empty log message ***

svn path=/trunk/boinc/; revision=5265
This commit is contained in:
David Anderson 2005-02-01 21:11:08 +00:00
parent 5b015af00f
commit c6b5c63f8c
15 changed files with 144 additions and 87 deletions

View File

@ -23706,3 +23706,11 @@ David 1 Feb 2005
sched/
server_types.C
David 1 Feb 2005
- MFILE's buffer was not being maintained as NULL-terminated.
This caused problems with GUI RPC, where the buffer was
transferred to code that expected it to be NULL-terminated
lib/
mfile.C,h

View File

@ -33,7 +33,7 @@ echo "
<pre>
// gets run when either
// - a result becomes done (via timeout or client reply)
// - the WU error mask is set (e.g. by validater)
// - the WU error mask is set (e.g. by validator)
// - assimilation is finished
for each WU with now > transition_time:

View File

@ -17,7 +17,7 @@ Sets the verbosity level.
2 = normal messages,
3 = detailed debugging info.
<h3>Work generation</h3>
<h3>Work generator</h3>
<p>
There is one work generator per application.
It creates workunits and the corresponding input files.
@ -28,7 +28,7 @@ for registering the workunits in the database.
During testing, you can create a single workunit using
<a href=tools_work.php>create_work</a>,
then use the daemon program
<a href=tools_work.php>make_work</a>
<a href=busy_work.php>make_work</a>
to copy this workunit as needed to maintain a given supply of work.
<h3>Transitioner</h3>
@ -45,7 +45,7 @@ If present, this instance of the transitioner will handle
only workunits for which mod(id, n) = i.
This lets you run arbitrarily many instances of the transitioner.
<h3>Validation</h3>
<h3>Validator</h3>
<p>
There is one validator per application.
It compares redundant results and selects a <b>canonical result</b>
@ -53,7 +53,7 @@ representing the correct output,
and a <b>canonical credit</b> granted to users and hosts
that return the correct output.
<h3>Assimilation</h3>
<h3>Assimilator</h3>
There is one assimilator per application.
It handles workunits that are 'completed':
that is, that have a canonical result or for which
@ -62,9 +62,16 @@ Handling a successfully completed result might involve
record results in a database and perhaps generating more work.
<h3>File deletion</h3>
This application-independent program
deletes input and output files
when they are no longer needed.
The application-independent program
<a href=file_deleter.php>file_deleter</a>
deletes input and output files when they are no longer needed.
<h3>Database purging</h3>
The application-independent program
<a href=db_purge.php>db_purge</a>
removes work-related database entries when they are no longer needed.
This keeps your database at a constant size even
when your project runs for a long time.
";
page_tail();
?>

View File

@ -8,11 +8,26 @@ The daemon program
<pre>
make_work -wu_name name -cushion N
</pre>
creates copies of the given work unit
creates copies of the given 'master workunit'
as needed to maintain a supply of at least N unsent results.
This is useful for testing purposes.
<p>
Note: if you run the file_deleter and/or db_purge,
the master workunit or its input files may be deleted
(which will cause make_work to fail).
To avoid this, give the master workunit a name that contains
'nodelete' as a substring.
This causes the file_deleter and db_purge to skip over it.
<p>
This is useful for testing purposes.
It may be convenient to have a script that recreates
the master workunit.
For example:
<pre>
cp test_workunits/12ja04aa `bin/dir_hier_path 12ja04aa`
bin/create_work -appname setiathome -wu_name sah_nodelete -wu_template templates/setiathome_wu_0 -result_template templates/setiathome_result_0 12ja04aa
</pre>
";

View File

@ -20,41 +20,37 @@ in various languages.
See also
<a href=http://setiweb.ssl.berkeley.edu/sah/download_network.php>GUIs and add-on software for BOINC</a>.
<h2>Mailing lists</h2>
<h2>Email lists</h2>
The follow mailing lists are available.
The follow email lists are available.
Click to subscribe or post to a list.
<dl>
<dt>
<a href=http://ssl.berkeley.edu/mailman/listinfo/boinc_projects>boinc_projects</a>
<dd>
This list is for people operating BOINC projects.
Use it to ask questions, report bugs, or request enhancements to
the BOINC server software.
Announcements of modifications and upgrades to BOINC will posted here.
";
list_start();
list_item(
"<a href=http://ssl.berkeley.edu/mailman/listinfo/boinc_projects>boinc_projects</a>",
"For people operating BOINC projects.
Use it to ask questions, report bugs, or request enhancements to
the BOINC server software.
Announcements of modifications and upgrades to BOINC will posted here.
");
list_item("<a href=http://ssl.berkeley.edu/mailman/listinfo/boinc_dev>boinc_dev</a>",
"For people developing, debugging or porting the BOINC software.
");
list_item(
"<a href=http://www.ssl.berkeley.edu/mailman/listinfo/boinc_stats>boinc_stats</a>",
"For people developing web sites showing statistics for BOINC projects."
);
<dt>
<a href=http://ssl.berkeley.edu/mailman/listinfo/boinc_dev>boinc_dev</a>
<dd>
This list is for people developing, debugging or porting the BOINC software.
list_item("<a href=http://ssl.berkeley.edu/mailman/listinfo/boinc_cvs>boinc_cvs</a>",
"Summaries of BOINC CVS checkins are posted to this list.
No other posts, please."
);
<dt>
<a href=http://www.ssl.berkeley.edu/mailman/listinfo/boinc_stats>boinc_stats</a>
<dd>
This list is for people developing web sites showing statistics
for BOINC projects.
<dt>
<a href=http://ssl.berkeley.edu/mailman/listinfo/boinc_cvs>boinc_cvs</a>
<dd>
Summaries of BOINC CVS checkins are posted to this list.
<dt>
<a href=http://www.ssl.berkeley.edu/mailman/listinfo/boinc_opt>boinc_opt</a>
<dd>
This list is for people porting and optimizing BOINC applications.
</dl>
list_item("<a href=http://www.ssl.berkeley.edu/mailman/listinfo/boinc_opt>boinc_opt</a>",
"For people porting and optimizing BOINC applications."
);
list_end();
echo "
<h2>Getting source code</h2>
<p>
At any given point there are two different versions
@ -94,18 +90,26 @@ RSS-based news feeds are available from BOINC
and from several BOINC-based projects:
<ul>
<li> BOINC: http://boinc.berkeley.edu/rss_main.php
<li> BOINC alpha test: http://setiboinc.ssl.berkeley.edu/boinc_alpha/rss_main.php
<li> BOINC beta test: http://setiboinc.ssl.berkeley.edu/ap/rss_main.php
<li> SETI@home: http://setiweb.berkeley.edu/sah/rss_main.php
</ul>
<h2>Graphics</h2>
<p>
The BOINC logo uses the Planet Benson font from
<a href=http://www.larabiefonts.com>Larabie Fonts</a>.
Hi-res logos:
<a href=logo.png>PNG</a>, <a href=logo.jpg>JPEG</a>,
<a href=logo.gif>GIFF</a>.
<p>
Check out this
<a href=hatfield.png>BOINC logo</a>
by Jared Hatfield, a high school student.
<h2>Other</h2>
A good summary of distributed computing projects,
including those based on BOINC, is at
<a href=http://www.aspenleaf.com/distributed/>www.aspenleaf.com</a>.
<p>
For inquiries about BOINC, contact Dr. David P. Anderson,
the director of the BOINC project, at davea at ssl.berkeley.edu.
If you have problems with the BOINC software for Windows please email
Rom Walton: rwalton at ssl.berkeley.edu.
";

View File

@ -1,13 +1,32 @@
<?php
require_once("docutil.php");
page_head("Acknowledgements");
page_head("Personnel");
echo "
The BOINC project is based at the Space Sciences Laboratory
The BOINC project is based at the
<a href=http://ssl.berkeley.edu>Space Sciences Laboratory</a>
at the University of California, Berkeley.
Project staff include:
<dl>
<dt> <b>Dr. David P. Anderson</b>
<dd>
Director and architect. Contact him at davea at ssl.berkeley.edu.
<dt><b>Rom Walton</b>
<dd>
Developer (mostly Windows).
Contact him at rwalton at ssl.berkeley.edu.
<dt><b>Jeff Cobb</b>
<dd>Developer and system administrator
<dt><b>Matt Lebofsky</b>
<dd>Developer and system administrator
<dt><b>Court Cannick</b>
<dd>System administrator
</dl>
<p>
BOINC developers (many of them volunteers) include:
Other BOINC developers (many of them volunteers) include:
<p>
";
$i = 0;
@ -84,12 +103,6 @@ echo "
</table>
<p>
Many thanks to Komori Hitoshi for proof-reading this web site.
<p>
The BOINC logo uses the Planet Benson font from
<a href=http://www.larabiefonts.com>Larabie Fonts</a>.
Hi-res logos:
<a href=logo.png>PNG</a>, <a href=logo.jpg>JPEG</a>,
<a href=logo.gif>GIFF</a>.
";
page_tail();
?>

View File

@ -100,7 +100,7 @@ Getting work done
How to generate tasks and handle the results.
</font>
<ul>
<li> <a href=backend_programs.php>Daemon programs</a>
<li> <a href=backend_programs.php>Overview of daemons</a>
<li> <a href=tools_work.php>Generating work</a>
<li> <a href=validate.php>Result validation</a>
<li> <a href=assimilate.php>Result assimilation</a>

View File

@ -26,12 +26,13 @@ function page_head($title) {
}
function page_tail() {
$y = date("Y ");
echo "
<hr size='0' noshade/>
<p align='center'>
<a href='/'>Return to BOINC main page</a>
<br/><br/>
Copyright &copy; 2004 University of California
Copyright &copy; $y University of California
</p>
</body>
</html>

View File

@ -182,6 +182,8 @@ echo "
<p>
<a href=download.php?dev=1>Show development versions also</a>.
<p>
Get data in <a href=download.php?xml=1>XML format</a>.
";
if ($_GET["dev"]) {

View File

@ -56,7 +56,7 @@ section(
"community.php"
);
section(
"Acknowledgements",
"Personnel",
"contact.php"
);
echo "

View File

@ -61,12 +61,9 @@ language("Finnish", array(
"BOINC instructions in Finnish")
));
language("French", array(
site(
"http://www.boinc-fr.net",
"www.boinc-fr.net"),
site(
"http://boinc-quebec.org",
"boinc-quebec.org")
site("http://boincfrance.org", "BOINCFRANCE.ORG"),
site("http://www.boinc-fr.net", "www.boinc-fr.net"),
site("http://boinc-quebec.org", "boinc-quebec.org")
));
language("German", array(
site("http://www.boinc.de/", "www.boinc.de"),
@ -74,9 +71,9 @@ language("German", array(
site( "http://www.boinc-forum.de/", "www.boinc-forum.de"),
site( "http://www.emuleatboinc.de/board", "Official eMule @ BOINC Team Page")
));
//list_item("Italian",
// "<a href=http://boinc.homeunix.org/>boinc.homeunix.org</a>"
//);
language("Italian", array(
site("http://it.groups.yahoo.com/group/BOINC-ITALIA/", "BOINC-ITALIA")
));
language("Japanese", array(
site(
"http://boinc.oocp.org/",

View File

@ -44,7 +44,7 @@ the new result is compared with the canonical result;
this determines whether the user gets credit.
<li> <b>Assimilation:</b>
This is the mechanism by which the project is notifed of the completion
This is the mechanism by which the project is notified of the completion
(success or unsuccessful) of a work unit.
It is performed exactly once per work unit.
If the work unit was completed successfully
@ -69,7 +69,7 @@ max_delay = 10
BOINC automatically creates three results,
which are sent at various times.
At time 8, two successful results have returned
so the validater is invoked.
so the validator is invoked.
It finds a consensus, so the work unit is assimilated.
At time 10 result 3 arrives;
validation is performed again,

View File

@ -141,13 +141,20 @@ dir_hier_path filename
</pre>
It prints the full pathname.
Run this in the project's root directory.
For example:
<pre>
cp test_workunits/12ja04aa `bin/dir_hier_path 12ja04aa`
</pre>
copies an input file from the test_workunits directory
to the download directory hierarchy.
<h2>Creating workunit records</h2>
<p>
Workunits can be created using either a script
(using the <code>create_work</code>program)
(using the <code>create_work</code> program)
or a program (using the <code>create_work()</code> function).
The input files must already be in the download directory.
<p>
The utility program is
<pre>
@ -158,8 +165,6 @@ create_work
// relative to project root
-result_template filename // result template filename
// relative to project root
[ -config_dir path ] // where 'config.xml' is;
// default = '.'
[ -batch n ]
[ -priority n ]
@ -178,9 +183,7 @@ create_work
infile_1 ... infile_m // input files
</pre>
The workunit parameters are documented <a href=work.php>here</a>.
If the -config_dir option is not used,
the program must be run in the project root directory;
it looks for <b>config.xml</b> there, and uses its contents.
The program must be run in the project root directory.
<p>
The C++ library (crypt.C, backend_lib.C,h) provides the functions:

View File

@ -61,13 +61,14 @@ int MFILE::vprintf(const char* format, va_list ap) {
k = vsprintf(buf2, format, ap);
n = (int)strlen(buf2);
buf = (char*)realloc(buf, len+n);
buf = (char*)realloc(buf, len+n+1);
if (!buf) {
errno = ERR_MALLOC;
return -1;
}
strncpy(buf+len, buf2, n);
len += n;
buf[len] = 0;
return k;
}
@ -82,36 +83,39 @@ int MFILE::printf(const char* format, ...) {
}
size_t MFILE::write(const void *ptr, size_t size, size_t nitems) {
buf = (char *)realloc( buf, len+(size*nitems) );
buf = (char *)realloc( buf, len+(size*nitems)+1 );
if (!buf) {
errno = ERR_MALLOC;
return 0;
}
memcpy( buf+len, ptr, size*nitems );
len += (int)size*(int)nitems;
buf[len] = 0;
return nitems;
}
int MFILE::_putchar(char c) {
buf = (char*)realloc(buf, len+1);
buf = (char*)realloc(buf, len+1+1);
if (!buf) {
errno = ERR_MALLOC;
return EOF;
}
buf[len] = c;
len++;
buf[len] = 0;
return c;
}
int MFILE::puts(const char* p) {
int n = (int)strlen(p);
buf = (char*)realloc(buf, len+n);
buf = (char*)realloc(buf, len+n+1);
if (!buf) {
errno = ERR_MALLOC;
return EOF;
}
strncpy(buf+len, p, n);
len += n;
buf[len] = 0;
return n;
}

View File

@ -23,14 +23,17 @@
#include <cstdio>
#include <cstdarg>
// MFILE supports a primitive form of checkpointing.
// Write all your output (and restart file) to MFILEs.
// The output is buffered in memory.
// Then close or flush all the MFILEs;
// all the buffers will be flushed to disk, almost atomically.
// MFILE provides memory-buffered output with a FILE-type interface.
// BOINC uses this in a couple of places:
// 1) in the GUI RPC system (since in Windows you can't fdopen a socket)
// 2) in the API, to support a primitive form of checkpointing:
// Write all your output (and restart file) to MFILEs.
// The output is buffered in memory.
// Then close or flush all the MFILEs;
// all the buffers will be flushed to disk, almost atomically.
class MFILE {
char* buf;
char* buf; // NULL-terminated
int len;
FILE* f;
public: