mirror of https://github.com/BOINC/boinc.git
duration correction factor enhancements
svn path=/trunk/boinc/; revision=9252
This commit is contained in:
parent
4c1ae30489
commit
1bfed5d3cc
|
@ -525,3 +525,15 @@ David 16 Jan 2006
|
|||
|
||||
client/
|
||||
acct_mgr.C
|
||||
|
||||
David 16 Jan 2006
|
||||
- core client: enhancements to duration correction factor (DCF):
|
||||
- on project reset, set DCF to one.
|
||||
- when do CPU benchmarks, scale all DCFs by new/old benchmark
|
||||
|
||||
(from Josef Segur)
|
||||
|
||||
client/
|
||||
client_state.C,h
|
||||
cs_benchmark.C
|
||||
cs_scheduler.C
|
||||
|
|
|
@ -1283,6 +1283,7 @@ int CLIENT_STATE::reset_project(PROJECT* project) {
|
|||
garbage_collect_always();
|
||||
}
|
||||
|
||||
project->duration_correction_factor = 1;
|
||||
write_state_file();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -343,6 +343,7 @@ public:
|
|||
int handle_scheduler_reply(PROJECT*, char* scheduler_url, int& nresults);
|
||||
int compute_work_requests();
|
||||
SCHEDULER_OP* scheduler_op;
|
||||
void scale_duration_correction_factors(double);
|
||||
private:
|
||||
bool contacted_sched_server;
|
||||
int overall_work_fetch_urgency;
|
||||
|
|
|
@ -364,6 +364,7 @@ bool CLIENT_STATE::cpu_benchmarks_poll() {
|
|||
}
|
||||
}
|
||||
if (ndone == ncpus) {
|
||||
double old_p_fpops = host_info.p_fpops;
|
||||
if (had_error) {
|
||||
msg_printf(NULL, MSG_ERROR, "CPU benchmarks error");
|
||||
host_info.p_fpops = DEFAULT_FPOPS;
|
||||
|
@ -403,6 +404,11 @@ bool CLIENT_STATE::cpu_benchmarks_poll() {
|
|||
);
|
||||
#endif
|
||||
|
||||
// scale duration correction factor according to change in benchmarks.
|
||||
//
|
||||
if (old_p_fpops) {
|
||||
scale_duration_correction_factors(host_info.p_fpops/old_p_fpops);
|
||||
}
|
||||
host_info.p_calculated = now;
|
||||
benchmarks_running = false;
|
||||
msg_printf(NULL, MSG_INFO, "Finished CPU benchmarks");
|
||||
|
|
|
@ -1415,4 +1415,11 @@ double CLIENT_STATE::work_needed_secs() {
|
|||
return x;
|
||||
}
|
||||
|
||||
void CLIENT_STATE::scale_duration_correction_factors(double factor) {
|
||||
for (unsigned int i=0; i<projects.size(); i++) {
|
||||
PROJECT* p = projects[i];
|
||||
p->duration_correction_factor *= factor;
|
||||
}
|
||||
}
|
||||
|
||||
const char *BOINC_RCSID_d35a4a7711 = "$Id$";
|
||||
|
|
|
@ -165,6 +165,7 @@ show_name("Thomas Richard");
|
|||
show_name("Nikolay Saharov");
|
||||
show_name("Alex A. dos Santos");
|
||||
show_name("Steven Schweda");
|
||||
show_name("Josef W. Segur");
|
||||
show_name("Jens Seidler");
|
||||
show_name("Peter Smithson");
|
||||
show_name("Christian Søttrup");
|
||||
|
|
Loading…
Reference in New Issue