diff --git a/checkin_notes b/checkin_notes index 2019d338c8..8ce8d85af9 100644 --- a/checkin_notes +++ b/checkin_notes @@ -8695,3 +8695,13 @@ David 15 Oct 2009 coproc.cpp,h sched/ sched_customize.cpp + +David 15 Oct 2009 + - client: the weight of GPU debt in computing total debt should be + (estimated throughput of all GPUs)/(estimated throughput of all CPUs) + rather than the ratio of 1 GPU to 1 CPU. + This change will hopefully cause ratios of granted credit + to more closely match resource shares. + + client + work_fetch.cpp,h diff --git a/client/work_fetch.cpp b/client/work_fetch.cpp index c2877e12ea..caba1704e0 100644 --- a/client/work_fetch.cpp +++ b/client/work_fetch.cpp @@ -898,20 +898,21 @@ void WORK_FETCH::set_initial_work_request() { // void WORK_FETCH::init() { cpu_work_fetch.init(RSC_TYPE_CPU, gstate.ncpus, 1); + double cpu_flops = gstate.ncpus*gstate.host_info.p_fpops; // use 20% as a rough estimate of GPU efficiency if (coproc_cuda) { cuda_work_fetch.init( RSC_TYPE_CUDA, coproc_cuda->count, - 0.2*coproc_cuda->peak_flops()/gstate.host_info.p_fpops + coproc_cuda->count*0.2*coproc_cuda->peak_flops()/cpu_flops ); } if (coproc_ati) { ati_work_fetch.init( RSC_TYPE_ATI, coproc_ati->count, - 0.2*coproc_ati->peak_flops()/gstate.host_info.p_fpops + coproc_ati->count*0.2*coproc_ati->peak_flops()/cpu_flops ); } diff --git a/client/work_fetch.h b/client/work_fetch.h index 2a015cf049..0fb23b1454 100644 --- a/client/work_fetch.h +++ b/client/work_fetch.h @@ -144,7 +144,7 @@ struct BUSY_TIME_ESTIMATOR { struct RSC_WORK_FETCH { int rsc_type; int ninstances; - double speed; // relative to CPU + double speed; // total FLOPS relative to CPU total FLOPS // the following used/set by rr_simulation(): //