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

Eliminate core_bitmap use from job and step for bluegene systems.

parent 6e0a4c1c
No related branches found
No related tags found
No related merge requests found
......@@ -116,11 +116,13 @@ extern int build_select_job_res(select_job_res_t select_job_res,
select_job_res->sock_core_rep_count[sock_inx]++;
core_cnt += (cores * socks);
}
#ifndef HAVE_BG
select_job_res->core_bitmap = bit_alloc(core_cnt);
select_job_res->core_bitmap_used = bit_alloc(core_cnt);
if ((select_job_res->core_bitmap == NULL) ||
(select_job_res->core_bitmap_used == NULL))
fatal("bit_alloc malloc failure");
#endif
return SLURM_SUCCESS;
}
......@@ -524,8 +526,6 @@ extern void pack_select_job_res(select_job_res_t select_job_res_ptr,
return;
}
xassert(select_job_res_ptr->core_bitmap);
xassert(select_job_res_ptr->core_bitmap_used);
xassert(select_job_res_ptr->cores_per_socket);
xassert(select_job_res_ptr->cpus);
xassert(select_job_res_ptr->nhosts);
......@@ -583,6 +583,9 @@ extern void pack_select_job_res(select_job_res_t select_job_res_ptr,
pack32_array(select_job_res_ptr->sock_core_rep_count,
(uint32_t) i, buffer);
#ifndef HAVE_BG
xassert(select_job_res_ptr->core_bitmap);
xassert(select_job_res_ptr->core_bitmap_used);
pack32(core_cnt, buffer);
xassert(core_cnt == bit_size(select_job_res_ptr->core_bitmap));
pack_bit_fmt(select_job_res_ptr->core_bitmap, buffer);
......@@ -590,13 +593,14 @@ extern void pack_select_job_res(select_job_res_t select_job_res_ptr,
pack_bit_fmt(select_job_res_ptr->core_bitmap_used, buffer);
/* Do not pack the node_bitmap, but rebuild it in reset_node_bitmap()
* based upon job_ptr->nodes and the current node table */
#endif
}
extern int unpack_select_job_res(select_job_res_t *select_job_res_pptr,
Buf buffer)
{
char *bit_fmt = NULL;
uint32_t core_cnt, empty, tmp32;
uint32_t core_cnt = 0, empty, tmp32;
select_job_res_t select_job_res;
xassert(select_job_res_pptr);
......@@ -645,6 +649,7 @@ extern int unpack_select_job_res(select_job_res_t *select_job_res_pptr,
safe_unpack32_array(&select_job_res->sock_core_rep_count,
&tmp32, buffer);
#ifndef HAVE_BG
safe_unpack32(&core_cnt, buffer); /* NOTE: Not part of struct */
safe_unpackstr_xmalloc(&bit_fmt, &tmp32, buffer);
select_job_res->core_bitmap = bit_alloc((bitoff_t) core_cnt);
......@@ -658,6 +663,7 @@ extern int unpack_select_job_res(select_job_res_t *select_job_res_pptr,
xfree(bit_fmt);
/* node_bitmap is not packed, but rebuilt in reset_node_bitmap()
* based upon job_ptr->nodes and the current node table */
#endif
*select_job_res_pptr = select_job_res;
return SLURM_SUCCESS;
......
......@@ -1308,9 +1308,15 @@ static void _build_select_struct(struct job_record *job_ptr, bitstr_t *bitmap)
} else
select_ptr->cpu_array_reps[k]++;
total_cpus += node_cpus;
#if 0
/* This function could be used to control allocation of
* specific c-nodes for multiple job steps per job allocation.
* Such functionality is not currently support on BlueGene
* systems.
* Also see #ifdef HAVE_BG logic in common/select_job_res.c */
if (set_select_job_res_node(select_ptr, j))
error("select_p_job_test: set_select_job_res_node: %m");
#endif
j++;
}
if (select_ptr->nprocs != total_cpus) {
......
......@@ -952,8 +952,6 @@ extern void step_alloc_lps(struct step_record *step_ptr)
bool pick_step_cores = true;
xassert(select_ptr);
xassert(select_ptr->core_bitmap);
xassert(select_ptr->core_bitmap_used);
xassert(select_ptr->cpus);
xassert(select_ptr->cpus_used);
......@@ -965,6 +963,11 @@ extern void step_alloc_lps(struct step_record *step_ptr)
if (i_first == -1) /* empty bitmap */
return;
#ifdef HAVE_BG
pick_step_cores = false;
#else
xassert(select_ptr->core_bitmap);
xassert(select_ptr->core_bitmap_used);
if (step_ptr->core_bitmap_job) {
/* "scontrol reconfig" of live system */
pick_step_cores = false;
......@@ -975,6 +978,7 @@ extern void step_alloc_lps(struct step_record *step_ptr)
step_ptr->core_bitmap_job = bit_copy(select_ptr->core_bitmap);
pick_step_cores = false;
}
#endif
if (step_ptr->mem_per_task &&
((select_ptr->memory_allocated == NULL) ||
......@@ -1071,8 +1075,6 @@ static void _step_dealloc_lps(struct step_record *step_ptr)
int job_node_inx = -1, step_node_inx = -1;
xassert(select_ptr);
xassert(select_ptr->core_bitmap);
xassert(select_ptr->core_bitmap_used);
xassert(select_ptr->cpus);
xassert(select_ptr->cpus_used);
......@@ -1133,6 +1135,10 @@ static void _step_dealloc_lps(struct step_record *step_ptr)
if (step_node_inx == (step_ptr->step_layout->node_cnt - 1))
break;
}
#ifndef HAVE_BG
xassert(select_ptr->core_bitmap);
xassert(select_ptr->core_bitmap_used);
if (step_ptr->core_bitmap_job) {
/* Mark the job's cores as no longer in use */
bit_not(step_ptr->core_bitmap_job);
......@@ -1141,6 +1147,7 @@ static void _step_dealloc_lps(struct step_record *step_ptr)
/* no need for bit_not(step_ptr->core_bitmap_job); */
FREE_NULL_BITMAP(step_ptr->core_bitmap_job);
}
#endif
}
/*
......
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