mirror of https://github.com/BOINC/boinc.git
client: remove code that avoids overcommitting CPUs if MT jobs present.
This can lead to starving the CPUs if there are both GPU and MT jobs. The basic problem is that a host with GPUs will never have all its CPUs available for MT jobs. It should probably advertise fewer CPUs, or something.
This commit is contained in:
parent
3ea6711d06
commit
dddf586532
|
@ -1591,7 +1591,6 @@ bool CLIENT_STATE::enforce_run_list(vector<RESULT*>& run_list) {
|
|||
// and prune those that can't be assigned
|
||||
//
|
||||
assign_coprocs(run_list);
|
||||
bool scheduled_mt = false;
|
||||
|
||||
// prune jobs that don't fit in RAM or that exceed CPU usage limits.
|
||||
// Mark the rest as SCHEDULED
|
||||
|
@ -1638,22 +1637,6 @@ bool CLIENT_STATE::enforce_run_list(vector<RESULT*>& run_list) {
|
|||
}
|
||||
}
|
||||
|
||||
// Don't overcommit CPUs if a MT job is scheduled.
|
||||
// Skip this check for GPU jobs.
|
||||
//
|
||||
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;
|
||||
if (atp) {
|
||||
atp->too_large = false;
|
||||
|
@ -1686,9 +1669,6 @@ bool CLIENT_STATE::enforce_run_list(vector<RESULT*>& run_list) {
|
|||
atp = get_task(rp);
|
||||
}
|
||||
|
||||
if (rp->avp->avg_ncpus > 1) {
|
||||
scheduled_mt = true;
|
||||
}
|
||||
ncpus_used += rp->avp->avg_ncpus;
|
||||
atp->next_scheduler_state = CPU_SCHED_SCHEDULED;
|
||||
ram_left -= wss;
|
||||
|
|
Loading…
Reference in New Issue