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;