From cb8215ab2b55d2dc95ec9e4539d77488ee4947d2 Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Wed, 7 Nov 2007 17:10:24 +0000 Subject: [PATCH] svn merge -r12633:12637 https://eris.llnl.gov/svn/slurm/branches/slurm-1.2 --- AUTHORS | 1 + NEWS | 2 ++ doc/html/team.shtml | 1 + src/plugins/sched/wiki/get_jobs.c | 17 ++++++++++++++++- src/plugins/sched/wiki2/get_jobs.c | 17 ++++++++++++++++- 5 files changed, 36 insertions(+), 2 deletions(-) diff --git a/AUTHORS b/AUTHORS index 1ca83d05b9f..4811a692e77 100644 --- a/AUTHORS +++ b/AUTHORS @@ -30,6 +30,7 @@ Dan Phung <phung4(at)llnl.gov> Ashley Pitman <ashley(at)quadrics.com> Andy Riebs <Andy.Riebs(at)hp.com> Asier Roa <asier.roa(at)bsc.es> +Miguel Ros <miguel.ros(at)bsc.es> Federico Sacerdoti <Federico.Sacerdoti(at)deshaw.com> Jeff Squyres <jsquyres(at)lam-mpi.org> Keven Tew <tew1(at)llnl.gov> diff --git a/NEWS b/NEWS index b545e02edfd..7239cca25a9 100644 --- a/NEWS +++ b/NEWS @@ -86,6 +86,8 @@ documents those changes that are of interest to users and admins. specified. -- BLUEGENE: Documented the prefix should always be lower case and the 3 digit suffix should be uppercase if any letters are used as digits. + -- In sched/wiki and sched/wiki2, add support for --cpus-per-task option. + From Miguel Ros, BSC. * Changes in SLURM 1.2.19 ========================= diff --git a/doc/html/team.shtml b/doc/html/team.shtml index 5898698fff2..f5f426f3daf 100644 --- a/doc/html/team.shtml +++ b/doc/html/team.shtml @@ -49,6 +49,7 @@ Networking, Italy)</li> <li>Ashley Pittman (Quadrics)</li> <li>Andy Riebs (HP)</li> <li>Asier Roa (Barcelona Supercomputer Center, Spain)<li> +<li>Miguel Ros (Barcelona Supercomputer Center, Spain)<li> <li>Federico Sacerdoti (D.E. Shaw)<li> <li>Jeff Squyres (LAM MPI)</li> <li>Prashanth Tamraparni (HP, India)</li> diff --git a/src/plugins/sched/wiki/get_jobs.c b/src/plugins/sched/wiki/get_jobs.c index df478987d4c..a5f63fa07f2 100644 --- a/src/plugins/sched/wiki/get_jobs.c +++ b/src/plugins/sched/wiki/get_jobs.c @@ -47,6 +47,7 @@ static char * _dump_all_jobs(int *job_cnt, int state_info); static char * _dump_job(struct job_record *job_ptr, int state_info); static char * _get_group_name(gid_t gid); +static uint16_t _get_job_cpus_per_task(struct job_record *job_ptr); static uint32_t _get_job_end_time(struct job_record *job_ptr); static uint32_t _get_job_min_disk(struct job_record *job_ptr); static uint32_t _get_job_min_mem(struct job_record *job_ptr); @@ -240,6 +241,11 @@ static char * _dump_job(struct job_record *job_ptr, int state_info) xstrcat(buf, tmp); } + snprintf(tmp, sizeof(tmp), + "DPROCS=%u;", + _get_job_cpus_per_task(job_ptr)); + xstrcat(buf, tmp); + snprintf(tmp, sizeof(tmp), "QUEUETIME=%u;STARTTIME=%u;PARTITIONMASK=%s;", _get_job_submit_time(job_ptr), @@ -280,6 +286,15 @@ static char * _dump_job(struct job_record *job_ptr, int state_info) return buf; } +static uint16_t _get_job_cpus_per_task(struct job_record *job_ptr) +{ + uint16_t cpus_per_task = 1; + + if (job_ptr->details && job_ptr->details->cpus_per_task) + cpus_per_task = job_ptr->details->cpus_per_task; + return cpus_per_task; +} + static uint32_t _get_job_min_mem(struct job_record *job_ptr) { if (job_ptr->details) @@ -337,7 +352,7 @@ static uint32_t _get_job_tasks(struct job_record *job_ptr) job_ptr->details->ntasks_per_node)); } - return task_cnt; + return task_cnt / _get_job_cpus_per_task(job_ptr); } static uint32_t _get_job_time_limit(struct job_record *job_ptr) diff --git a/src/plugins/sched/wiki2/get_jobs.c b/src/plugins/sched/wiki2/get_jobs.c index 690d9ac899b..2b0842a2e01 100644 --- a/src/plugins/sched/wiki2/get_jobs.c +++ b/src/plugins/sched/wiki2/get_jobs.c @@ -50,6 +50,7 @@ static char * _dump_job(struct job_record *job_ptr, int state_info); static char * _get_group_name(gid_t gid); static void _get_job_comment(struct job_record *job_ptr, char *buffer, int buf_size); +static uint16_t _get_job_cpus_per_task(struct job_record *job_ptr); static uint32_t _get_job_end_time(struct job_record *job_ptr); static char * _get_job_features(struct job_record *job_ptr); static uint32_t _get_job_min_disk(struct job_record *job_ptr); @@ -300,6 +301,11 @@ static char * _dump_job(struct job_record *job_ptr, int state_info) _get_job_min_nodes(job_ptr)); xstrcat(buf, tmp); + snprintf(tmp, sizeof(tmp), + "DPROCS=%u;", + _get_job_cpus_per_task(job_ptr)); + xstrcat(buf, tmp); + snprintf(tmp, sizeof(tmp), "QUEUETIME=%u;STARTTIME=%u;RCLASS=%s;", _get_job_submit_time(job_ptr), @@ -408,6 +414,15 @@ static void _get_job_comment(struct job_record *job_ptr, size += snprintf((buffer + size), (buf_size - size), "\";"); } +static uint16_t _get_job_cpus_per_task(struct job_record *job_ptr) +{ + uint16_t cpus_per_task = 1; + + if (job_ptr->details && job_ptr->details->cpus_per_task) + cpus_per_task = job_ptr->details->cpus_per_task; + return cpus_per_task; +} + static uint32_t _get_job_min_mem(struct job_record *job_ptr) { if (job_ptr->details) @@ -465,7 +480,7 @@ static uint32_t _get_job_tasks(struct job_record *job_ptr) job_ptr->details->ntasks_per_node)); } - return task_cnt; + return task_cnt / _get_job_cpus_per_task(job_ptr); } static uint32_t _get_job_time_limit(struct job_record *job_ptr) -- GitLab