svn path=/trunk/boinc/; revision=12407

This commit is contained in:
David Anderson 2007-04-17 22:24:53 +00:00
parent f3f11e7b81
commit 3f915e647f
12 changed files with 82 additions and 68 deletions

View File

@ -3648,3 +3648,28 @@ David 17 Apr 2007
lib/
util.C
David 17 Apr 2007
- client: define work_buf_total as
max(1, work_buf_min + work_buf_additional).
Allow both work_buf_min and work_buf_additional to be zero.
- client: remove work_needed_secs()
client/
client_state.h
cpu_sched.C
sim.h
work_fetch.C
David 17 Apr 2007
- user web: better text for work-buf preferences;
defaults are 0 and 0.25.
- remove test_sanity.py stuff from configure.ac.
It's relevant only to the automated testing framework,
which no one uses except us.
configure.ac
html/inc/
prefs.inc
test/
testbase.py

View File

@ -273,6 +273,11 @@ public:
inline double work_buf_additional() {
return global_prefs.work_buf_additional_days *86400;
}
inline double work_buf_total() {
double x = work_buf_min() + work_buf_additional();
if (x < 1) x = 1;
return x;
}
void request_enforce_schedule(const char*);
void request_schedule_cpus(const char*);
// Check for reschedule CPUs ASAP. Called when:
@ -449,7 +454,6 @@ public:
double overall_cpu_frac();
double time_until_work_done(PROJECT*, int, double);
bool compute_work_requests();
double work_needed_secs();
void scale_duration_correction_factors(double);
void generate_new_host_cpid();
void compute_nuploading_results();

View File

@ -1006,8 +1006,8 @@ void CLIENT_STATE::rr_simulation() {
if (log_flags.rr_simulation) {
msg_printf(0, MSG_INFO,
"[rr_sim] rr_sim start: work_buf_min %f rrs %f trs %f ncpus %d",
work_buf_min(), rrs, trs, ncpus
"[rr_sim] rr_sim start: work_buf_total %f rrs %f trs %f ncpus %d",
work_buf_total(), rrs, trs, ncpus
);
}
@ -1048,17 +1048,17 @@ void CLIENT_STATE::rr_simulation() {
//
if (!p->active.size()) {
double rsf = trs ? p->resource_share/trs : 1;
p->cpu_shortfall = (work_buf_min() + work_buf_additional()) * overall_cpu_frac() * ncpus * rsf;
p->cpu_shortfall = work_buf_total() * overall_cpu_frac() * ncpus * rsf;
if (log_flags.rr_simulation) {
msg_printf(p, MSG_INFO,
"[rr_sim] no results; shortfall %f wbm %f ocf %f rsf %f",
p->cpu_shortfall, work_buf_min(), overall_cpu_frac(), rsf
"[rr_sim] no results; shortfall %f wbt %f ocf %f rsf %f",
p->cpu_shortfall, work_buf_total(), overall_cpu_frac(), rsf
);
}
}
}
double buf_end = now + work_buf_min() + work_buf_additional();
double buf_end = now + work_buf_total();
// Simulation loop. Keep going until work done
//

View File

@ -176,6 +176,12 @@ public:
double work_buf_additional() {
return global_prefs.work_buf_additional_days * 86400;
}
inline double work_buf_total() {
double x = work_buf_min() + work_buf_additional();
if (x < 1) x = 1;
return x;
}
void request_enforce_schedule(const char*);
void request_schedule_cpus(const char*);
@ -229,7 +235,6 @@ public:
double overall_cpu_frac();
double time_until_work_done(PROJECT*, int, double);
bool compute_work_requests();
double work_needed_secs();
void scale_duration_correction_factors(double);
void generate_new_host_cpid();
void compute_nuploading_results();

View File

@ -579,7 +579,7 @@ bool CLIENT_STATE::compute_work_requests() {
// sanity check
//
double x = (work_buf_additional() + work_buf_min())*ncpus;
double x = work_buf_total()*ncpus;
if (pbest->work_request > x) {
msg_printf(NULL, MSG_INTERNAL_ERROR,
"Proposed work request %f bigger than max %f",
@ -610,19 +610,6 @@ bool CLIENT_STATE::compute_work_requests() {
return false;
}
double CLIENT_STATE::work_needed_secs() {
double total_work = 0;
for(unsigned int i=0; i<results.size(); i++) {
if (results[i]->project->non_cpu_intensive) continue;
total_work += results[i]->estimated_cpu_time_remaining();
}
double x = work_buf_min() * avg_proc_rate() - total_work;
if (x < 0) {
return 0;
}
return x;
}
// called when benchmarks change
//
void CLIENT_STATE::scale_duration_correction_factors(double factor) {

View File

@ -691,36 +691,3 @@ AC_OUTPUT
echo "--- Configuring BOINC AC_PACKAGE_VERSION (${build_state}) ---"
echo "--- Build Components: (${configured_to_build}) ---"
[
true || $TOP_SOURCE_DIR/test/test_sanity.py || (
cat <<EOF
******************************************************************************
**
** The framework sanity check failed.
**
** If you only want to compile (and run) the client or compile (and run) the
** server, this may be okay.
**
** If you are developing BOINC and want to run the automated tests, you need a
** MySQL server installed and running, with permission to create databases.
**
** You can run this sanity check using test/test_sanity.py
**
******************************************************************************
EOF
)
if test "${enable_server}" = yes ; then
cat<<EOF
We recommend you run test/test_sanity.py to make sure your host is configured
properly for building the BOINC server.
EOF
fi
]

View File

@ -1,6 +1,23 @@
<?
$project_news = array(
array("April 17, 2007",
"<a href=http://desktopgrid.hu/>Desktopgrid.hu</a>
has been created by the Computer and Automation Research Institute
(SZATAKI) of the Hungarian Academy of Sciences (MTA).
It provides information (and software downloads) for using
BOINC for <a href=dg.php>desktop Grid computing</a>."
),
array("April 16, 2007",
"BOINC is now using <a href=http://trac.edgewall.org/>Trac</a>,
an integrated software project management system.
In particular:
1) the BOINC source code repository now uses Subversion;
2) the BOINC bug database has been moved to Trac;
3) documentation will be moved to a Wiki.
See <a href=trac/>the BOINC/Trac page</a>.
"
),
array("April 11, 2007",
"The BBC documentary 'Meltdown',
which highlights <a href=http://climateprediction.net>Climateprediction.net</a>,

View File

@ -54,7 +54,7 @@ you don't need to build the Core client or BOINC Manager.</b>
<td><br></td>
</tr>
<tr>
<td>MySQL 4.0+ or 4.1+
<td>MySQL 4.0 or higher
<br>MySQL client
</td>
<td>X</td>
@ -91,7 +91,7 @@ you don't need to build the Core client or BOINC Manager.</b>
<td><br></td>
</tr>
<tr>
<td><a href=http://www.wxwidgets.org/>WxWidgets</a> 2.6.3
<td><a href=http://www.wxwidgets.org/>WxWidgets</a> 2.8.3
<p>
<ul>
<li>Configure with the <code>--with-gtk --disable-shared</code> options

View File

@ -13,7 +13,8 @@ echo "
<b>Desktop grid computing</b>
is a form of distributed computing in which
an organization (such as a business)
uses its existing desktop PCs to handle long-running computational tasks.
uses its existing desktop PCs to handle its own
long-running computational tasks.
This differs from volunteer computing in several ways:
<ul>
<li> The computing resources can be trusted;
@ -58,9 +59,15 @@ this can be done using <a href=win_deploy.php>Active Directories</a>.
</ul>
<p>
To ensure that outside PC can't participate in your project
To ensure that outside hosts can't participate in your project
or access its files,
configure your firewall to prevent HTTP access to your BOINC server.
<p>
For more information on desktop grid computing using BOINC,
and some useful pre-compiled software, visit
<a href=http://desktopgrid.hu/>Desktopgrid.hu</a>.
";
page_tail(true);

View File

@ -7,8 +7,9 @@ echo "
<li> Install and configure all <a href=build.php>prerequisite software</a>
(follow the directions carefully).
Make sure MySQL is configured and running.
<li> Get the BOINC
<li> Compile the BOINC software, say into HOME/boinc.
<li> <a href=source_code.php>Get the BOINC software</a>,
say into HOME/boinc.
<li> <a href=build_system.php>Compile the BOINC server software</a>
<li> Run HOME/boinc/tools/<a href=make_project.php>make_project</a>
<li> Append the contents of projects/PROJECT/PROJECT.httpd.conf
to httpd.conf and restart Apache.

View File

@ -69,13 +69,14 @@ define("HANGUP_IF_DIALED_DESC",
<br><span class=note>(matters only if you have a modem, ISDN or VPN connection)</span>"
);
define("WORK_BUF_MIN_DAYS_DESC",
"Connect to network about every
<br><span class=note>(maximum 10 days)</span>
"Computer is connected to the Internet about every
<br><span class=note>(Leave blank or 0 if always connected.
<br>BOINC will try to maintain at least this much work.)</span>
"
);
define("WORK_BUF_ADDITIONAL_DAYS_DESC",
"Cache enough work for an additional
<br><span class=note>(maximum 10 days; requires 5.10+ client)</span>
"Maintain enough work for an additional
<br><span class=note>(Requires 5.10+ client.)</span>
"
);
define("MAX_CPUS_DESC", "On multiprocessors, use at most");
@ -392,8 +393,8 @@ function default_prefs_global() {
$p->cpu_scheduling_period_minutes = 60;
$p->confirm_before_connecting = false;
$p->hangup_if_dialed = true;
$p->work_buf_min_days = .1;
$p->work_buf_additional_days = 1;
$p->work_buf_min_days = "";
$p->work_buf_additional_days = 0.25;
$p->max_cpus = 16;
$p->cpu_usage_limit = 100;
$p->disk_interval = 60;

View File

@ -714,7 +714,7 @@ class Proxy:
# check if child process died
(pid,status) = os.waitpid(self.pid, os.WNOHANG)
if pid:
fatal_error("testproxy failed")
fatal_error("testproxy failed; see testproxy.log for details")
self.pid = 0
else:
atexit.register(self.stop)