Skip to content
Snippets Groups Projects
Commit ce0bc5c1 authored by Moe Jette's avatar Moe Jette
Browse files

-- When srun is used with the --exclusive and --m plane=# options, insure

    allocate tasks in blocks of the plane size.
parent 74d4bc32
No related branches found
No related tags found
No related merge requests found
...@@ -32,6 +32,8 @@ documents those changes that are of interest to users and admins. ...@@ -32,6 +32,8 @@ documents those changes that are of interest to users and admins.
-- Fix squeue/scancel to query correctly against accounts of different case. -- Fix squeue/scancel to query correctly against accounts of different case.
-- Abort an srun command when it's associated job gets aborted due to a -- Abort an srun command when it's associated job gets aborted due to a
dependency that can not be satisfied. dependency that can not be satisfied.
-- When srun is used with the --exclusive and --m plane=# options, insure
allocate tasks in blocks of the plane size.
* Changes in SLURM 2.2.3 * Changes in SLURM 2.2.3
======================== ========================
......
...@@ -644,6 +644,23 @@ _pick_step_nodes (struct job_record *job_ptr, ...@@ -644,6 +644,23 @@ _pick_step_nodes (struct job_record *job_ptr,
gres_cnt /= cpus_per_task; gres_cnt /= cpus_per_task;
total_tasks = MIN(total_tasks, gres_cnt); total_tasks = MIN(total_tasks, gres_cnt);
if (step_spec->plane_size != (uint16_t) NO_VAL) {
if (avail_tasks < step_spec->plane_size)
avail_tasks = 0;
else {
/* Round count down */
avail_tasks /= step_spec->plane_size;
avail_tasks *= step_spec->plane_size;
}
if (total_tasks < step_spec->plane_size)
total_tasks = 0;
else {
/* Round count down */
total_tasks /= step_spec->plane_size;
total_tasks *= step_spec->plane_size;
}
}
if (step_spec->max_nodes && if (step_spec->max_nodes &&
(nodes_picked_cnt >= step_spec->max_nodes)) (nodes_picked_cnt >= step_spec->max_nodes))
bit_clear(nodes_avail, i); bit_clear(nodes_avail, i);
...@@ -1573,8 +1590,8 @@ step_create(job_step_create_request_msg_t *step_specs, ...@@ -1573,8 +1590,8 @@ step_create(job_step_create_request_msg_t *step_specs,
step_specs->node_list = xstrdup(step_node_list); step_specs->node_list = xstrdup(step_node_list);
} }
if (slurm_get_debug_flags() & DEBUG_FLAG_STEPS) { if (slurm_get_debug_flags() & DEBUG_FLAG_STEPS) {
verbose("got %s and %s looking for %u nodes", step_node_list, verbose("Picked nodes %s when accumulating from %s",
step_specs->node_list, step_specs->min_nodes); step_node_list, step_specs->node_list);
} }
step_ptr->step_node_bitmap = nodeset; step_ptr->step_node_bitmap = nodeset;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment