From 430f6a081355b3f5264845f927f7b69ffc4a3570 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Mon, 2 Jul 2012 17:58:33 +0000 Subject: [PATCH] - client: in the job scheduler, there's a check to prevent overcommitting the CPUs if an MT is scheduled. Skip this check for GPU jobs. svn path=/trunk/boinc/; revision=25835 --- checkin_notes | 8 ++++++++ client/cpu_sched.cpp | 22 ++++++++++++---------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/checkin_notes b/checkin_notes index 3a696ca2e2..85ff431dc3 100644 --- a/checkin_notes +++ b/checkin_notes @@ -4655,3 +4655,11 @@ David 1 July 2012 client/ work_fetch.cpp,h scheduler_op.cpp + +David 2 July 2012 + - client: in the job scheduler, there's a check to prevent + overcommitting the CPUs if an MT is scheduled. + Skip this check for GPU jobs. + + client/ + cpu_sched.cpp diff --git a/client/cpu_sched.cpp b/client/cpu_sched.cpp index afa9392d8a..6e92db565b 100644 --- a/client/cpu_sched.cpp +++ b/client/cpu_sched.cpp @@ -1596,18 +1596,20 @@ bool CLIENT_STATE::enforce_run_list(vector& run_list) { } } - // don't overcommit CPUs if a MT job is scheduled + // Don't overcommit CPUs if a MT job is scheduled. + // Skip this check for GPU jobs. // - if (scheduled_mt || (rp->avp->avg_ncpus > 1)) { - if (ncpus_used + rp->avp->avg_ncpus > ncpus) { - if (log_flags.cpu_sched_debug) { - msg_printf(rp->project, MSG_INFO, - "[cpu_sched_debug] avoid MT overcommit: skipping %s", - rp->name - ); - } - continue; + if (!rp->uses_coprocs() + && (scheduled_mt || (rp->avp->avg_ncpus > 1)) + && (ncpus_used + rp->avp->avg_ncpus > ncpus) + ) { + if (log_flags.cpu_sched_debug) { + msg_printf(rp->project, MSG_INFO, + "[cpu_sched_debug] avoid MT overcommit: skipping %s", + rp->name + ); } + continue; } double wss = 0;