I took another look at the code, and the following patch restores the old
behaviour (in our case at least):

diff -ur slurm-2.5.0/src/slurmctld/job_scheduler.c
slurm-2.5.0-prio-patch/src/slurmctld/job_scheduler.c
--- slurm-2.5.0/src/slurmctld/job_scheduler.c 2012-12-06 18:11:25.000000000
-0600
+++ slurm-2.5.0-prio-patch/src/slurmctld/job_scheduler.c 2012-12-14
09:29:58.928431693 -0600
@@ -668,18 +668,21 @@
  if (sched_update != slurmctld_conf.last_update) {
  char *sched_params, *tmp_ptr;
  char *sched_type = slurm_get_sched_type();
+ char *prio_type = slurm_get_priority_type();
 #ifdef HAVE_BG
  /* On BlueGene, do FIFO only with sched/backfill */
  if (strcmp(sched_type, "sched/backfill") == 0)
  backfill_sched = true;
 #endif
- if (strcmp(sched_type, "sched/builtin") == 0)
+ if ((strcmp(sched_type, "sched/builtin") == 0) &&
+ (strcmp(prio_type, "priority/basic") == 0))
  fifo_sched = true;
  /* Disable avoiding of fragmentation with sched/wiki */
  if ((strcmp(sched_type, "sched/wiki") == 0) ||
     (strcmp(sched_type, "sched/wiki2") == 0))
  wiki_sched = true;
  xfree(sched_type);
+ xfree(prio_type);

  sched_params = slurm_get_sched_params();
  if (sched_params &&



On Fri, Dec 14, 2012 at 3:00 PM, Chris Read <[email protected]> wrote:

>  Greetings all...
>
> It looks to me like changes to the scheduler in 2.5.0 have broken
> priority/multifactor. I've run a sample test load through versions 2.4.3
> (what we currently have in production), 2.4.5 and 2.5.0. All three versions
> adjust the priority of the jobs as I expect (confirmed by sprio -l) but
> 2.5.0 ignores the priority value only allocates the jobs in the order they
> were submitted (FIFO) while the 2.4.x builds allocate them by priority.
>
> I've had a brief look at the code, and if feels to me like the changes to
> the main loop in schedule() in job_scheduler.c is possibly to blame, but my
> C is so rusty I'm not sure where I should start trying to fix it...
>
> Chris
>
>
>

Reply via email to