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