From a85b2225b74118f54b3266b309b01a72db424640 Mon Sep 17 00:00:00 2001 From: Danny Auble <da@schedmd.com> Date: Mon, 28 Nov 2011 15:43:46 -0800 Subject: [PATCH] BGQ - fixed issue where a user requests a node count and a task count that doesn't fill up all the cpus on the nodes requested. --- src/plugins/select/bluegene/select_bluegene.c | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/plugins/select/bluegene/select_bluegene.c b/src/plugins/select/bluegene/select_bluegene.c index f2f84d9c902..494d40de13c 100644 --- a/src/plugins/select/bluegene/select_bluegene.c +++ b/src/plugins/select/bluegene/select_bluegene.c @@ -2810,9 +2810,22 @@ extern int select_p_alter_node_cnt(enum select_node_cnt type, void *data) set min_nodes correctly */ if ((job_desc->min_cpus != NO_VAL) - && (job_desc->min_cpus > job_desc->min_nodes)) - job_desc->min_nodes = - job_desc->min_cpus / bg_conf->cpu_ratio; + && (job_desc->min_cpus > job_desc->min_nodes)) { + float tmp_float = (float)job_desc->min_cpus + / (float)bg_conf->cpu_ratio; + tmp = (uint32_t)tmp_float; + if (tmp_float != (float)tmp) + tmp++; + + if ((job_desc->min_nodes > 1) + && (tmp != job_desc->min_nodes)) + error("Asking for more resources than " + "possible. Requested %u nodes and %u " + "tasks, giving them %u nodes.", + job_desc->min_nodes, + job_desc->min_cpus, tmp); + job_desc->min_nodes = tmp; + } /* initialize min_cpus to the min_nodes */ job_desc->min_cpus = job_desc->min_nodes * bg_conf->cpu_ratio; @@ -2883,7 +2896,6 @@ extern int select_p_alter_node_cnt(enum select_node_cnt type, void *data) set_select_jobinfo(job_desc->select_jobinfo->data, SELECT_JOBDATA_NODE_CNT, &job_desc->min_nodes); - job_desc->min_cpus = job_desc->min_nodes * bg_conf->cpu_ratio; job_desc->min_nodes = 1; -- GitLab