From a19c352540e352c1171cdbccf1e55f93fb8aedbd Mon Sep 17 00:00:00 2001
From: Morris Jette <jette@schedmd.com>
Date: Wed, 7 Jan 2015 16:00:24 -0800
Subject: [PATCH] burst_buffer/cray

This gets BB working with job arrays
---
 src/slurmctld/job_scheduler.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/slurmctld/job_scheduler.c b/src/slurmctld/job_scheduler.c
index 25afec6048d..fa8537ee0e5 100644
--- a/src/slurmctld/job_scheduler.c
+++ b/src/slurmctld/job_scheduler.c
@@ -83,7 +83,9 @@
 #include "src/slurmctld/sched_plugin.h"
 
 #define _DEBUG 0
-#define BB_STAGE_JOB_CNT 1
+#ifndef BB_STAGE_ARRAY_TASK_CNT
+#  define BB_STAGE_ARRAY_TASK_CNT 4
+#endif
 #define BUILD_TIMEOUT 2000000	/* Max build_job_queue() run time in usec */
 #define MAX_FAILED_RESV 10
 #define MAX_RETRIES 10
@@ -320,10 +322,15 @@ extern List build_job_queue(bool clear_start, bool backfill)
 		if ((i = bit_ffs(job_ptr->array_recs->task_id_bitmap)) < 0)
 			continue;
 		pend_cnt = num_pending_job_array_tasks(job_ptr->array_job_id);
-		if (pend_cnt >= BB_STAGE_JOB_CNT)
+		if (pend_cnt >= BB_STAGE_ARRAY_TASK_CNT)
+			continue;
+		if (job_ptr->array_recs->task_cnt < 1)
 			continue;
-		if (job_ptr->array_recs->task_cnt <= 1)
+		if (job_ptr->array_recs->task_cnt == 1) {
+			job_ptr->array_task_id = i;
+			job_array_post_sched(job_ptr);
 			continue;
+		}
 		job_ptr->array_task_id = i;
 		new_job_ptr = job_array_split(job_ptr);
 		if (new_job_ptr) {
-- 
GitLab