mirror of https://github.com/BOINC/boinc.git
*** empty log message ***
svn path=/trunk/boinc/; revision=5265
This commit is contained in:
parent
5b015af00f
commit
c6b5c63f8c
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
|
@ -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();
|
||||
?>
|
||||
|
|
|
@ -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>
|
||||
|
||||
";
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
";
|
||||
|
||||
|
|
|
@ -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();
|
||||
?>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 © 2004 University of California
|
||||
Copyright © $y University of California
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -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"]) {
|
||||
|
|
|
@ -56,7 +56,7 @@ section(
|
|||
"community.php"
|
||||
);
|
||||
section(
|
||||
"Acknowledgements",
|
||||
"Personnel",
|
||||
"contact.php"
|
||||
);
|
||||
echo "
|
||||
|
|
|
@ -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/",
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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:
|
||||
|
|
12
lib/mfile.C
12
lib/mfile.C
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
15
lib/mfile.h
15
lib/mfile.h
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue