- scheduler: if an app has only GPU versions,

scale their PFC by 0.1 in credit calculations.
    This reflects the fact that GPU apps are typically less efficient
    (relative to device peak FLOPS) than are CPU apps.
    The actual values from SETI@home and Milkyway are 0.05 and 0.08.


svn path=/trunk/boinc/; revision=24842
This commit is contained in:
David Anderson 2011-12-21 03:21:52 +00:00
parent 31aaf4bf85
commit fe90776614
2 changed files with 19 additions and 2 deletions

View File

@ -9181,3 +9181,13 @@ Rom 20 Dec 2011
samples/vboxwrapper/ samples/vboxwrapper/
vbox.cpp, .h vbox.cpp, .h
vboxwrapper.cpp vboxwrapper.cpp
David 20 Dec 2011
- scheduler: if an app has only GPU versions,
scale their PFC by 0.1 in credit calculations.
This reflects the fact that GPU apps are typically less efficient
(relative to device peak FLOPS) than are CPU apps.
The actual values from SETI@home and Milkyway are 0.05 and 0.08.
sched/
credit.cpp

View File

@ -209,6 +209,13 @@ int scale_versions(APP& app, double avg, SCHED_SHMEM* ssp) {
return 0; return 0;
} }
#define DEFAULT_GPU_SCALE 0.1
// if there are no CPU versions to compare against,
// multiply pfc_scale of GPU versions by this.
// This reflects the average lower efficiency of GPU apps compared to CPU apps.
// The observed values from SETI@home and Milkyway are 0.05 and 0.08.
// We'll be a little generous and call it 0.1
// Update app version scale factors, // Update app version scale factors,
// and find the min average PFC for each app. // and find the min average PFC for each app.
// Called periodically from the master feeder. // Called periodically from the master feeder.
@ -276,11 +283,11 @@ int update_av_scales(SCHED_SHMEM* ssp) {
"CPU avg: %g\n", cpu_info.avg() "CPU avg: %g\n", cpu_info.avg()
); );
scale_versions(app, cpu_info.avg(), ssp); scale_versions(app, cpu_info.avg(), ssp);
} else if (gpu_info.nvers_thresh > 1) { } else if (gpu_info.nvers_thresh > 0) {
log_messages.printf(MSG_NORMAL, log_messages.printf(MSG_NORMAL,
"GPU avg: %g\n", gpu_info.avg() "GPU avg: %g\n", gpu_info.avg()
); );
scale_versions(app, gpu_info.avg(), ssp); scale_versions(app, gpu_info.avg()*DEFAULT_GPU_SCALE, ssp);
} }
} }