From 59cf022e4b912411b29b0f47f7dd9b8d188a7e59 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Mon, 8 Jul 2002 20:57:11 +0000
Subject: [PATCH] Removed dist (block or cycle) and procs_per_task from job
 data structure and RPCs. This will all be managed directly by srun/slurmd.

---
 src/common/slurm_protocol_defs.c | 12 ----------
 src/common/slurm_protocol_defs.h | 10 ---------
 src/common/slurm_protocol_pack.c |  4 ----
 src/slurmctld/job_mgr.c          | 38 +++-----------------------------
 src/slurmctld/slurmctld.h        | 28 -----------------------
 5 files changed, 3 insertions(+), 89 deletions(-)

diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c
index 123d5bf5937..cf09b50a942 100644
--- a/src/common/slurm_protocol_defs.c
+++ b/src/common/slurm_protocol_defs.c
@@ -302,7 +302,6 @@ void slurm_free_kill_tasks_msg ( kill_tasks_msg_t * msg )
 void slurm_init_job_desc_msg ( job_desc_msg_t * job_desc_msg )
 {
 	job_desc_msg -> contiguous = (uint16_t) SLURM_JOB_DESC_DEFAULT_CONTIGUOUS ;
-	job_desc_msg -> dist = SLURM_JOB_DESC_DEFAULT_DIST ;
 	job_desc_msg -> features = SLURM_JOB_DESC_DEFAULT_FEATURES ;
 	job_desc_msg -> groups = SLURM_JOB_DESC_DEFAULT_GROUPS ; /* will be set by api */
 	job_desc_msg -> job_id = SLURM_JOB_DESC_DEFAULT_JOB_ID ; /* will be set by api */
@@ -313,7 +312,6 @@ void slurm_init_job_desc_msg ( job_desc_msg_t * job_desc_msg )
 	job_desc_msg -> min_tmp_disk = SLURM_JOB_DESC_DEFAULT_MIN_TMP_DISK ;
 	job_desc_msg -> partition = SLURM_JOB_DESC_DEFAULT_PARTITION ;
 	job_desc_msg -> priority = SLURM_JOB_DESC_DEFAULT_PRIORITY ;
-        job_desc_msg -> procs_per_task = SLURM_JOB_DESC_DEFAULT_PROCS_PER_TASK ;
 	job_desc_msg -> req_nodes = SLURM_JOB_DESC_DEFAULT_REQ_NODES ;
 	job_desc_msg -> job_script = SLURM_JOB_DESC_DEFAULT_JOB_SCRIPT ;
 	job_desc_msg -> shared = (uint16_t) SLURM_JOB_DESC_DEFAULT_SHARED ;
@@ -323,16 +321,6 @@ void slurm_init_job_desc_msg ( job_desc_msg_t * job_desc_msg )
 	job_desc_msg -> user_id = SLURM_JOB_DESC_DEFAULT_USER_ID ;
 }
 
-char *
-job_dist_string(uint16_t inx) 
-{
-	static char *job_dist_string[] = {
-		"BLOCK", 
-		"CYCLE" 
-	};
-	return job_dist_string[inx];
-}
-
 char *
 job_state_string(uint16_t inx) 
 {
diff --git a/src/common/slurm_protocol_defs.h b/src/common/slurm_protocol_defs.h
index 37712c69720..f96e9ea5d35 100644
--- a/src/common/slurm_protocol_defs.h
+++ b/src/common/slurm_protocol_defs.h
@@ -73,12 +73,6 @@ enum job_states {
 	JOB_END			/* last entry in table */
 };
 
-/* keep in sync with job_dist_string    	*/
-enum task_dist {
-	DIST_BLOCK,		/* fill each node in turn */
-	DIST_CYCLE		/* one task each node, round-robin through nodes */
-};
-
 enum part_shared {
 	SHARED_NO,		/* Nodes never shared in partition */
 	SHARED_YES,		/* Nodes possible to share in partition */
@@ -278,8 +272,6 @@ typedef struct job_desc_msg {   /* Job descriptor for submit, allocate, and upda
 				 *                                  * value is #fffffffe */
 	uint32_t num_procs;     /* number of processors required by job, default=0 */
 	uint32_t num_nodes;     /* number of nodes required by job, default=0 */
-	uint32_t dist;    	/* task distribution pattern, block/cycle */
-	uint32_t procs_per_task;   
 	uint32_t user_id;       /* set only if different from current UID, default set
 				 * to UID by API, can only be set if user is root */
 } job_desc_msg_t ;
@@ -426,7 +418,6 @@ extern char *job_state_string(uint16_t inx);
 extern char *node_state_string(uint16_t inx);
 
 #define SLURM_JOB_DESC_DEFAULT_CONTIGUOUS	NO_VAL
-#define SLURM_JOB_DESC_DEFAULT_DIST		NO_VAL	
 #define SLURM_JOB_DESC_DEFAULT_FEATURES		NULL
 #define SLURM_JOB_DESC_DEFAULT_GROUPS		NULL
 #define SLURM_JOB_DESC_DEFAULT_JOB_ID		NO_VAL	
@@ -437,7 +428,6 @@ extern char *node_state_string(uint16_t inx);
 #define SLURM_JOB_DESC_DEFAULT_MIN_TMP_DISK	NO_VAL	
 #define SLURM_JOB_DESC_DEFAULT_PARTITION	NULL
 #define SLURM_JOB_DESC_DEFAULT_PRIORITY		NO_VAL
-#define SLURM_JOB_DESC_DEFAULT_PROCS_PER_TASK 	NO_VAL
 #define SLURM_JOB_DESC_DEFAULT_REQ_NODES	NULL
 #define SLURM_JOB_DESC_DEFAULT_JOB_SCRIPT	NULL
 #define SLURM_JOB_DESC_DEFAULT_SHARED	 	NO_VAL	
diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c
index adb4d2c0551..c2f86ae9fe7 100644
--- a/src/common/slurm_protocol_pack.c
+++ b/src/common/slurm_protocol_pack.c
@@ -794,8 +794,6 @@ void pack_job_desc ( job_desc_msg_t * job_desc_ptr, void ** buf_ptr , int * buff
 	
 	pack32 (job_desc_ptr->num_procs, buf_ptr, buffer_size);
 	pack32 (job_desc_ptr->num_nodes, buf_ptr, buffer_size);
-	pack32 (job_desc_ptr->dist, buf_ptr, buffer_size);
-	pack32 (job_desc_ptr->procs_per_task, buf_ptr, buffer_size);
 	pack32 (job_desc_ptr->user_id, buf_ptr, buffer_size);
 
 }
@@ -845,8 +843,6 @@ int unpack_job_desc ( job_desc_msg_t **job_desc_buffer_ptr, void ** buf_ptr , in
 	
 	unpack32 (&job_desc_ptr->num_procs, buf_ptr, buffer_size);
 	unpack32 (&job_desc_ptr->num_nodes, buf_ptr, buffer_size);
-	unpack32 (&job_desc_ptr->dist, buf_ptr, buffer_size);
-	unpack32 (&job_desc_ptr->procs_per_task, buf_ptr, buffer_size);
 	unpack32 (&job_desc_ptr->user_id, buf_ptr, buffer_size);
 
 	*job_desc_buffer_ptr = job_desc_ptr ;
diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index 5be01b9c4a2..0bf93ecee9f 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -48,11 +48,6 @@
 
 /* macros for simple comparisons
  */
-#define block_or_cycle(in_string) \
-		(strcmp((in_string),"BLOCK")? \
-			(strcmp((in_string),"CYCLE")? \
-				-1 : DIST_CYCLE ) : DIST_BLOCK ) 
-
 #define yes_or_no(in_string) \
 		(( strcmp ((in_string),"YES"))? \
 			(strcmp((in_string),"NO")? \
@@ -204,7 +199,6 @@ create_job_record (int *error_code)
 
 	job_details_point->magic  = DETAILS_MAGIC;
 	job_details_point->submit_time = time (NULL);
-	job_details_point->procs_per_task = 1;
 
 	if (list_append (job_list, job_record_point) == NULL)
 		fatal ("create_job_record: unable to allocate memory");
@@ -310,9 +304,8 @@ find_job_record(uint32_t job_id)
 void
 dump_job_desc(job_desc_msg_t * job_specs)
 {
-	char * dist = NULL;
 	long job_id, min_procs, min_memory, min_tmp_disk, num_procs;
-	long num_nodes,  procs_per_task, time_limit, priority, contiguous, shared;
+	long num_nodes, time_limit, priority, contiguous, shared;
 
 	if (job_specs == NULL) 
 		return;
@@ -340,13 +333,8 @@ dump_job_desc(job_desc_msg_t * job_specs)
 	debug3("   time_limit=%ld priority=%ld contiguous=%ld shared=%ld features=%s", 
 		time_limit, priority, contiguous, shared, job_specs->features);
 
-	procs_per_task = (job_specs->procs_per_task != NO_VAL) ? job_specs->procs_per_task : -1 ;
-	if (job_specs->dist == DIST_BLOCK)
-		dist = "BLOCK";
-	else if (job_specs->dist == DIST_CYCLE)
-		dist = "CYCLE";
-	debug3("   procs_per_task=%ld dist=%s job_script=%s groups=%s", 
-		procs_per_task, dist, job_specs->job_script, job_specs->groups);
+	debug3("   job_script=%s groups=%s", 
+		job_specs->job_script, job_specs->groups);
 
 /*	debug3("   partition_key=%?\n", job_specs->partition_key); */
 
@@ -717,10 +705,6 @@ copy_job_desc_to_job_record ( job_desc_msg_t * job_desc ,
 		detail_ptr->min_memory = job_desc->min_memory;
 	if (job_desc->min_tmp_disk != NO_VAL)
 		detail_ptr->min_tmp_disk = job_desc->min_tmp_disk;
-	if (job_desc->dist != NO_VAL)
-		detail_ptr->dist = (enum task_dist) job_desc->dist;
-	if (job_desc->procs_per_task != NO_VAL)
-		detail_ptr->procs_per_task = job_desc->procs_per_task;
 	if (job_desc->job_script)
 		detail_ptr->job_script = xstrdup ( job_desc->job_script );
 	/* job_ptr->nodes		*leave as NULL pointer for now */
@@ -759,8 +743,6 @@ validate_job_desc ( job_desc_msg_t * job_desc_msg , int allocate )
 		job_desc_msg->contiguous = 0 ;
 	if (job_desc_msg->shared == NO_VAL)
 		job_desc_msg->shared =  0 ;
-	if (job_desc_msg->dist == NO_VAL)
-		job_desc_msg->shared = DIST_BLOCK ;
 
 	if (job_desc_msg->job_id != NO_VAL && 
 	    find_job_record ((uint32_t) job_desc_msg->job_id))
@@ -778,22 +760,8 @@ validate_job_desc ( job_desc_msg_t * job_desc_msg , int allocate )
 		job_desc_msg->min_tmp_disk = 1;		/* default is 1 MB disk per node */
 	if (job_desc_msg->shared == NO_VAL)
 		job_desc_msg->shared = 0;		/* default is not shared nodes */
-	if (job_desc_msg->dist == NO_VAL)
-		job_desc_msg->dist = DIST_BLOCK;	/* default is block distribution */
-	if (job_desc_msg->procs_per_task == NO_VAL)
-		job_desc_msg->procs_per_task = 1;	/* default is 1 processor per task */
-	else if (job_desc_msg->procs_per_task <= 0) {
-		info ("job_create: Invalid procs_per_task");
-		return ESLURM_INVALID_PROCS_PER_TASK;
-	}
-
 	if (job_desc_msg->min_procs == NO_VAL)
 		job_desc_msg->min_procs = 1;		/* default is 1 processor per node */
-	if (job_desc_msg->min_procs < job_desc_msg->procs_per_task) {
-		info ("job_create: min_cpus(%d) < procs_per_task, reset to equal (%d)", 
-		       job_desc_msg->min_procs, job_desc_msg->procs_per_task);
-		job_desc_msg->min_procs = job_desc_msg->procs_per_task;
-	}	
 	return SLURM_SUCCESS ;
 }
 
diff --git a/src/slurmctld/slurmctld.h b/src/slurmctld/slurmctld.h
index ec1594a86c9..0be87795a04 100644
--- a/src/slurmctld/slurmctld.h
+++ b/src/slurmctld/slurmctld.h
@@ -155,9 +155,7 @@ struct job_details {
 	uint32_t min_procs;		/* minimum processors per node, MB */
 	uint32_t min_memory;		/* minimum memory per node, MB */
 	uint32_t min_tmp_disk;		/* minimum temporary disk per node, MB */
-	enum task_dist dist;		/* distribution of tasks, 0=fill, 0=cyclic */
 	char *job_script;		/* name of job script to execute */
-	uint16_t procs_per_task;	/* processors required per task */
 	uint32_t total_procs;		/* total number of allocated processors, for accounting */
 	time_t submit_time;		/* time of submission */
 };
@@ -195,8 +193,6 @@ struct 	step_record {
 struct step_specs {
 	uint32_t job_id;		/* job ID */
 	uint16_t step_id;		/* step number */
-	uint16_t dist;			/* task distribution 1=cycle, 0=block */
-	uint16_t procs_per_task;	/* processors required per task */
 	uint32_t user_id;		/* user the job runs as */
 };
 
@@ -222,13 +218,6 @@ extern void  allocate_nodes (unsigned *bitmap);
  */
 extern void bitmap2node_name (bitstr_t *bitmap, char **node_list);
 
-/*
- * block_or_cycle - map string into integer
- * input: in_string: pointer to string containing "BLOCK" or "CYCLE"
- * output: returns 1 for "BLOCK", 0 for "CYCLE", -1 otherwise
- */
-extern enum task_dist block_or_cycle (char *in_string);
-
 /*
  * count_cpus - report how many cpus are associated with the identified nodes 
  * input: bitmap - a node bitmap
@@ -596,23 +585,6 @@ extern void pack_part (struct part_record *part_record_point, void **buf_ptr, in
  *	machine independent form (for network transmission) */
 extern void pack_step (struct step_record *dump_step_ptr, void **buf_ptr, int *buf_len);
 
-/* 
- * parse_job_specs - pick the appropriate fields out of a job request specification
- * input: job_specs - string containing the specification
- *        req_features, etc. - pointers to storage for the specifications
- * output: req_features, etc. - the job's specifications
- *         returns 0 if no error, errno otherwise
- * NOTE: the calling function must xfree memory at req_features[0], req_node_list[0],
- *	job_name[0], req_group[0], and req_partition[0]
- */
-extern int parse_job_specs (char *job_specs, char **req_features, char **req_node_list,
-		 char **job_name, char **req_group, char **req_partition,
-		 int *contiguous, int *req_cpus, int *req_nodes,
-		 int *min_cpus, int *min_memory, int *min_tmp_disk, int *key,
-		 int *shared, int *dist, char **script, int *time_limit, 
-		 int *procs_per_task, long *job_id, int *priority, 
-		 int *user_id);
-
 extern int parse_node_name(char *name, char **fmt, int *start, int *end, int *count); 
 
 /* part_lock - lock the partition information */
-- 
GitLab