mirror of https://github.com/BOINC/boinc.git
*** empty log message ***
svn path=/trunk/boinc/; revision=11971
This commit is contained in:
parent
fb192fc5ad
commit
3f17de9d9d
|
@ -1130,3 +1130,25 @@ David 25 Jan 2007
|
|||
wxPieCtrl.cpp
|
||||
win_build/
|
||||
boinc_dll.vcproj
|
||||
|
||||
David 25 Jan 2007
|
||||
- core client: there was logic that wouldn't start a result
|
||||
for a project if it had > 2 active uploads
|
||||
(intended to prevent an unbounded buildup of files
|
||||
for a project whose upload server is broken).
|
||||
This was never triggered since the default is 2 active
|
||||
transfers per project.
|
||||
Maybe I meant persistent file transfers.
|
||||
In any case, this is a bad policy because there may be
|
||||
a project with lots of output files per result, possibly large,
|
||||
and there's no reason to keep it from computing.
|
||||
So instead, I changed it to not start a result from a project
|
||||
if its number of results in FILES_UPLOADING state exceeds 2*ncpus.
|
||||
|
||||
client/
|
||||
client_state.h
|
||||
client_types.h
|
||||
cpu_sched.C
|
||||
cs_scheduler.C
|
||||
clientgui/
|
||||
AdvancedFrame.cpp
|
||||
|
|
|
@ -307,6 +307,7 @@ public:
|
|||
int input_files_available(RESULT*, bool);
|
||||
ACTIVE_TASK* get_next_graphics_capable_app();
|
||||
int ncpus;
|
||||
// number of usable cpus
|
||||
private:
|
||||
int nslots;
|
||||
|
||||
|
|
|
@ -313,9 +313,9 @@ public:
|
|||
// project in the current debt interval
|
||||
struct RESULT *next_runnable_result;
|
||||
// the next result to run for this project
|
||||
int nactive_uploads;
|
||||
// number of file uploads in progress.
|
||||
// Don't start new results if these exceeds 2.
|
||||
int nuploading_results;
|
||||
// number of results in UPLOADING state
|
||||
// Don't start new results if these exceeds 2*ncpus.
|
||||
|
||||
double work_request;
|
||||
// the unit is "project-normalized CPU seconds",
|
||||
|
|
|
@ -137,12 +137,12 @@ void CLIENT_STATE::assign_results_to_projects() {
|
|||
project = rp->project;
|
||||
if (project->next_runnable_result) continue;
|
||||
|
||||
// don't start results if project has > 2 uploads in progress.
|
||||
// don't start results if project has > 2*ncpus uploading results.
|
||||
// This avoids creating an unbounded number of completed
|
||||
// results for a project that can download and compute
|
||||
// faster than it can upload.
|
||||
//
|
||||
if (project->nactive_uploads > 2) continue;
|
||||
if (project->nuploading_results > 2*ncpus) continue;
|
||||
|
||||
project->next_runnable_result = rp;
|
||||
}
|
||||
|
@ -439,14 +439,14 @@ void CLIENT_STATE::schedule_cpus() {
|
|||
for (i=0; i<projects.size(); i++) {
|
||||
p = projects[i];
|
||||
p->next_runnable_result = NULL;
|
||||
p->nactive_uploads = 0;
|
||||
p->nuploading_results = 0;
|
||||
p->anticipated_debt = p->short_term_debt;
|
||||
p->deadlines_missed = p->rr_sim_deadlines_missed;
|
||||
}
|
||||
for (i=0; i<file_xfers->file_xfers.size(); i++) {
|
||||
FILE_XFER* fxp = file_xfers->file_xfers[i];
|
||||
if (fxp->is_upload) {
|
||||
fxp->fip->project->nactive_uploads++;
|
||||
for (i=0; i<results.size(); i++) {
|
||||
RESULT* rp = results[i];
|
||||
if (rp->state() == RESULT_FILES_UPLOADING) {
|
||||
rp->project->nuploading_results++;
|
||||
}
|
||||
}
|
||||
for (i=0; i<active_tasks.active_tasks.size(); i++) {
|
||||
|
|
|
@ -487,9 +487,12 @@ PROJECT* CLIENT_STATE::find_project_with_overdue_results() {
|
|||
if (gstate.now > r->completed_time + work_buf_min()) {
|
||||
return p;
|
||||
}
|
||||
|
||||
// Handle the case where the report is due
|
||||
// before the next reconnect is likely.
|
||||
//
|
||||
if (gstate.now > r->report_deadline - work_buf_min()) {
|
||||
return p; // Handles the case where the report is due before the next reconnect is
|
||||
// likely.
|
||||
return p;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -448,7 +448,7 @@ bool CAdvancedFrame::CreateMenu() {
|
|||
menuAdvanced->Append(
|
||||
ID_READ_CONFIG,
|
||||
_("Read config file"),
|
||||
_("Read configuration info from cc-config.xml.")
|
||||
_("Read configuration info from cc_config.xml.")
|
||||
);
|
||||
menuAdvanced->Append(
|
||||
ID_READ_PREFS,
|
||||
|
|
Loading…
Reference in New Issue