Commit 9f8831d1 authored by iker_martin's avatar iker_martin
Browse files

Minor bugfix for creating multiple hostfiles

parent cc2ce001
...@@ -41,7 +41,7 @@ void fill_str_hosts_slurm(char *nodelist, int *qty, size_t used_nodes, char **ho ...@@ -41,7 +41,7 @@ void fill_str_hosts_slurm(char *nodelist, int *qty, size_t used_nodes, char **ho
void generate_info_hostfile_slurm(char *nodelist, int *qty, size_t used_nodes, Spawn_data *spawn_data); void generate_info_hostfile_slurm(char *nodelist, int *qty, size_t used_nodes, Spawn_data *spawn_data);
void fill_hostfile_slurm(char* file_name, size_t used_nodes, int *qty, hostlist_t *hostlist); void fill_hostfile_slurm(char* file_name, size_t used_nodes, int *qty, hostlist_t *hostlist);
size_t fill_multiple_hostfile_slurm(char* file_name, int *qty, hostlist_t *hostlist, char **line, size_t *len_line); void fill_multiple_hostfile_slurm(char* file_name, int *qty, size_t *index, hostlist_t *hostlist, char **line, size_t *len_line);
#endif #endif
//--------------------------------SLURM USAGE-------------------------------------// //--------------------------------SLURM USAGE-------------------------------------//
...@@ -485,7 +485,7 @@ void generate_info_hostfile_slurm(char *nodelist, int *qty, size_t used_nodes, S ...@@ -485,7 +485,7 @@ void generate_info_hostfile_slurm(char *nodelist, int *qty, size_t used_nodes, S
if(spawn_data->spawn_is_multiple || spawn_data->spawn_is_parallel) { // MULTIPLE if(spawn_data->spawn_is_multiple || spawn_data->spawn_is_parallel) { // MULTIPLE
for(; index<spawn_data->total_spawns; index++) { for(; index<spawn_data->total_spawns; index++) {
// This strat creates 1 hostfile per spawn // This strat creates 1 hostfile per spawn
qty_index = fill_multiple_hostfile_slurm(hostfile_name, qty+qty_index, &hostlist, &line, &len_line); fill_multiple_hostfile_slurm(hostfile_name, qty, &qty_index, &hostlist, &line, &len_line);
set_mapping_host(qty[qty_index-1], "hostfile", hostfile_name, index, spawn_data); set_mapping_host(qty[qty_index-1], "hostfile", hostfile_name, index, spawn_data);
snprintf(hostfile_name+MAM_HOSTFILE_SIZE1, MAM_HOSTFILE_SIZE2 , "%03d%s", index+1, MAM_HOSTFILE_NAME3); snprintf(hostfile_name+MAM_HOSTFILE_SIZE1, MAM_HOSTFILE_SIZE2 , "%03d%s", index+1, MAM_HOSTFILE_NAME3);
} }
...@@ -524,9 +524,9 @@ void fill_hostfile_slurm(char* file_name, size_t used_nodes, int *qty, hostlist_ ...@@ -524,9 +524,9 @@ void fill_hostfile_slurm(char* file_name, size_t used_nodes, int *qty, hostlist_
free(line); free(line);
} }
size_t fill_multiple_hostfile_slurm(char* file_name, int *qty, hostlist_t *hostlist, char **line, size_t *len_line) { void fill_multiple_hostfile_slurm(char* file_name, int *qty, size_t *index, hostlist_t *hostlist, char **line, size_t *len_line) {
char *host; char *host;
size_t i=0; size_t i=*index;
int file = open(file_name, O_WRONLY | O_CREAT | O_TRUNC, 0644); int file = open(file_name, O_WRONLY | O_CREAT | O_TRUNC, 0644);
if (file < 0) { if (file < 0) {
...@@ -534,6 +534,7 @@ size_t fill_multiple_hostfile_slurm(char* file_name, int *qty, hostlist_t *hostl ...@@ -534,6 +534,7 @@ size_t fill_multiple_hostfile_slurm(char* file_name, int *qty, hostlist_t *hostl
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
// El valor de I tiene que continuar donde estaba
while( (host = slurm_hostlist_shift(*hostlist)) ) { while( (host = slurm_hostlist_shift(*hostlist)) ) {
if(qty[i] != 0) { if(qty[i] != 0) {
write_hostfile_node(file, qty[i], host, line, len_line); write_hostfile_node(file, qty[i], host, line, len_line);
...@@ -546,7 +547,7 @@ size_t fill_multiple_hostfile_slurm(char* file_name, int *qty, hostlist_t *hostl ...@@ -546,7 +547,7 @@ size_t fill_multiple_hostfile_slurm(char* file_name, int *qty, hostlist_t *hostl
if(host != NULL) free(host); if(host != NULL) free(host);
close(file); close(file);
return i; *index = i;
} }
#endif #endif
//--------------------------------SLURM USAGE-------------------------------------// //--------------------------------SLURM USAGE-------------------------------------//
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment