From fe90776614f6cbd716a5fcdce1222932bd12ae40 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Wed, 21 Dec 2011 03:21:52 +0000 Subject: [PATCH] - 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 --- checkin_notes | 10 ++++++++++ sched/credit.cpp | 11 +++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/checkin_notes b/checkin_notes index 490630193a..cdc9b9869d 100644 --- a/checkin_notes +++ b/checkin_notes @@ -9181,3 +9181,13 @@ Rom 20 Dec 2011 samples/vboxwrapper/ vbox.cpp, .h 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 diff --git a/sched/credit.cpp b/sched/credit.cpp index 8a9de61aa4..d9acfd9dc7 100644 --- a/sched/credit.cpp +++ b/sched/credit.cpp @@ -209,6 +209,13 @@ int scale_versions(APP& app, double avg, SCHED_SHMEM* ssp) { 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, // and find the min average PFC for each app. // Called periodically from the master feeder. @@ -276,11 +283,11 @@ int update_av_scales(SCHED_SHMEM* ssp) { "CPU avg: %g\n", cpu_info.avg() ); 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, "GPU avg: %g\n", gpu_info.avg() ); - scale_versions(app, gpu_info.avg(), ssp); + scale_versions(app, gpu_info.avg()*DEFAULT_GPU_SCALE, ssp); } }