From 42b241b194a7e7197e3c3e079b8e7da00801f9fa Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Thu, 15 Dec 2005 23:03:11 +0000 Subject: [PATCH] Set job's num_procs to the actual processor count in allocated BlueGene block. --- NEWS | 1 + src/plugins/select/bluegene/plugin/bg_job_run.c | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index cd09568e20a..bef654dca3e 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,7 @@ documents those changes that are of interest to users and admins. epilog completed. -- Added some infrastructure for job suspend/resume (scontrol, api, and slurmctld stub). + -- Set job's num_procs to the actual processor count in allocated BlueGene block. * Changes in SLURM 0.7.0-pre6 ============================= diff --git a/src/plugins/select/bluegene/plugin/bg_job_run.c b/src/plugins/select/bluegene/plugin/bg_job_run.c index 4ecbf415255..6bd75cd765b 100644 --- a/src/plugins/select/bluegene/plugin/bg_job_run.c +++ b/src/plugins/select/bluegene/plugin/bg_job_run.c @@ -658,9 +658,11 @@ int term_jobs_on_block(pm_partition_id_t bg_block_id) extern int start_job(struct job_record *job_ptr) { int rc = SLURM_SUCCESS; + bg_record_t *bg_record = NULL; + #ifdef HAVE_BG_FILES bg_update_t *bg_update_ptr = NULL; - + bg_update_ptr = xmalloc(sizeof(bg_update_t)); bg_update_ptr->op = START_OP; bg_update_ptr->uid = job_ptr->user_id; @@ -669,14 +671,17 @@ extern int start_job(struct job_record *job_ptr) SELECT_DATA_BLOCK_ID, &(bg_update_ptr->bg_block_id)); select_g_get_jobinfo(job_ptr->select_jobinfo, SELECT_DATA_NODE_USE, &(bg_update_ptr->node_use)); + bg_record = find_bg_record(bg_update_ptr->bg_block_id); + if (bg_record) { + job_ptr->num_procs = (bg_record->cnodes_per_bp * + bg_record->bp_count); + } info("Queue start of job %u in BG block %s", job_ptr->job_id, bg_update_ptr->bg_block_id); - _block_op(bg_update_ptr); #else ListIterator itr; - bg_record_t *bg_record = NULL; bg_record_t *found_record = NULL; char *block_id = NULL; uint16_t node_use; @@ -692,6 +697,10 @@ extern int start_job(struct job_record *job_ptr) return rc; } bg_record = find_bg_record(block_id); + if (bg_record) { + job_ptr->num_procs = (bg_record->cnodes_per_bp * + bg_record->bp_count); + } itr = list_iterator_create(bg_list); while ((found_record = (bg_record_t *) list_next(itr))) { if (bg_record->full_block) -- GitLab