Commit 3a73e2f0 authored by iker_martin's avatar iker_martin
Browse files

Various bugfixes over the changes in ADR and SDR. Also a fix in results for...

Various bugfixes over the changes in ADR and SDR. Also a fix in results for asynch iterations. Some warning corrections.
parent 3acc36ff
...@@ -42,9 +42,9 @@ static int handler(void* user, const char* section, const char* name, ...@@ -42,9 +42,9 @@ static int handler(void* user, const char* section, const char* name,
} else if (MATCH("general", "Granularity")) { } else if (MATCH("general", "Granularity")) {
pconfig->granularity = atoi(value); pconfig->granularity = atoi(value);
} else if (MATCH("general", "SDR")) { // TODO Refactor a nombre manual } else if (MATCH("general", "SDR")) { // TODO Refactor a nombre manual
pconfig->sdr = atoi(value); pconfig->sdr = strtoul(value, NULL, 10);
} else if (MATCH("general", "ADR")) { // TODO Refactor a nombre manual } else if (MATCH("general", "ADR")) { // TODO Refactor a nombre manual
pconfig->adr = atoi(value); pconfig->adr = strtoul(value, NULL, 10);
} else if (MATCH("general", "Rigid")) { } else if (MATCH("general", "Rigid")) {
pconfig->rigid_times = atoi(value); pconfig->rigid_times = atoi(value);
......
...@@ -100,6 +100,7 @@ void set_results_post_reconfig(results_data *results, int grp, int sdr, int adr) ...@@ -100,6 +100,7 @@ void set_results_post_reconfig(results_data *results, int grp, int sdr, int adr)
*/ */
void reset_results_index(results_data *results) { void reset_results_index(results_data *results) {
results->iter_index = 0; results->iter_index = 0;
results->iters_async = 0;
} }
//=============================================================== FIXME BORRAR? //=============================================================== FIXME BORRAR?
......
...@@ -39,7 +39,7 @@ int main(int argc, char *argv[]) { ...@@ -39,7 +39,7 @@ int main(int argc, char *argv[]) {
int numP, myId, res; int numP, myId, res;
int req; int req;
int im_child; int im_child;
int i; size_t i;
int num_cpus, num_nodes; int num_cpus, num_nodes;
char *nodelist = NULL; char *nodelist = NULL;
......
...@@ -15,7 +15,7 @@ typedef struct { ...@@ -15,7 +15,7 @@ typedef struct {
unsigned int grp; unsigned int grp;
int iter_start; int iter_start;
int argc; int argc;
int sync_data_groups, async_data_groups; size_t sync_data_groups, async_data_groups;
MPI_Comm children, parents; MPI_Comm children, parents;
......
...@@ -267,17 +267,17 @@ void def_struct_config_file(configuration *config_file) { ...@@ -267,17 +267,17 @@ void def_struct_config_file(configuration *config_file) {
MPI_Datatype types[counts]; MPI_Datatype types[counts];
// Rellenar vector types // Rellenar vector types
types[0] = types[1] = MPI_UNSIGNED_LONG; types[0] = types[1] = types[2] = types[3] = MPI_UNSIGNED_LONG;
types[2] = types[3] = types[4] = types[5] = MPI_INT; types[4] = types[5] = MPI_INT;
// Rellenar vector displs // Rellenar vector displs
MPI_Get_address(config_file, &dir); MPI_Get_address(config_file, &dir);
MPI_Get_address(&(config_file->n_groups), &displs[0]); MPI_Get_address(&(config_file->n_groups), &displs[0]);
MPI_Get_address(&(config_file->n_stages), &displs[1]); MPI_Get_address(&(config_file->n_stages), &displs[1]);
MPI_Get_address(&(config_file->granularity), &displs[2]); MPI_Get_address(&(config_file->sdr), &displs[2]);
MPI_Get_address(&(config_file->sdr), &displs[3]); MPI_Get_address(&(config_file->adr), &displs[3]);
MPI_Get_address(&(config_file->adr), &displs[4]); MPI_Get_address(&(config_file->granularity), &displs[4]);
MPI_Get_address(&(config_file->rigid_times), &displs[5]); MPI_Get_address(&(config_file->rigid_times), &displs[5]);
for(i=0;i<counts;i++) displs[i] -= dir; for(i=0;i<counts;i++) displs[i] -= dir;
......
...@@ -381,10 +381,10 @@ void prepare_redistribution(int qty, int myId, int numP, int numO, int is_childr ...@@ -381,10 +381,10 @@ void prepare_redistribution(int qty, int myId, int numP, int numO, int is_childr
// Obtener distribución para este hijo // Obtener distribución para este hijo
get_block_dist(qty, myId, numP, &dist_data); get_block_dist(qty, myId, numP, &dist_data);
*recv = malloc(dist_data.tamBl * sizeof(char)); *recv = malloc(dist_data.tamBl * sizeof(char));
get_block_dist(qty, myId, numP, &dist_data); //get_block_dist(qty, myId, numP, &dist_data);
print_counts(dist_data, r_counts->counts, r_counts->displs, numO, 1, "Children C"); //print_counts(dist_data, r_counts->counts, r_counts->displs, numO, 0, "Children C ");
} else { } else {
get_block_dist(qty, myId, numP, &dist_data); //get_block_dist(qty, myId, numP, &dist_data);
prepare_comm_alltoall(myId, numP, numO, qty, s_counts); prepare_comm_alltoall(myId, numP, numO, qty, s_counts);
if(is_intercomm) { if(is_intercomm) {
...@@ -398,9 +398,9 @@ get_block_dist(qty, myId, numP, &dist_data); ...@@ -398,9 +398,9 @@ get_block_dist(qty, myId, numP, &dist_data);
} else { } else {
mallocCounts(r_counts, numP); mallocCounts(r_counts, numP);
} }
print_counts(dist_data, r_counts->counts, r_counts->displs, numP, 1, "Children P "); //print_counts(dist_data, r_counts->counts, r_counts->displs, numP, 0, "Children P ");
} }
print_counts(dist_data, s_counts->counts, s_counts->displs, numO, 1, "Parents "); //print_counts(dist_data, s_counts->counts, s_counts->displs, numO, 0, "Parents ");
} }
} }
......
...@@ -405,7 +405,7 @@ void malleability_get_entries(size_t *entries, int is_replicated, int is_constan ...@@ -405,7 +405,7 @@ void malleability_get_entries(size_t *entries, int is_replicated, int is_constan
* TODO Refactor a que sea automatico * TODO Refactor a que sea automatico
* //FIXME Si es constante se debería ir a asincrono, no sincrono * //FIXME Si es constante se debería ir a asincrono, no sincrono
*/ */
void malleability_get_data(void **data, int index, int is_replicated, int is_constant) { void malleability_get_data(void **data, size_t index, int is_replicated, int is_constant) {
malleability_data_t *data_struct; malleability_data_t *data_struct;
if(is_constant) { if(is_constant) {
......
...@@ -25,7 +25,7 @@ void get_malleability_user_comm(MPI_Comm *comm); ...@@ -25,7 +25,7 @@ void get_malleability_user_comm(MPI_Comm *comm);
void malleability_add_data(void *data, size_t total_qty, int type, int is_replicated, int is_constant); void malleability_add_data(void *data, size_t total_qty, int type, int is_replicated, int is_constant);
void malleability_modify_data(void *data, size_t index, size_t total_qty, int type, int is_replicated, int is_constant); void malleability_modify_data(void *data, size_t index, size_t total_qty, int type, int is_replicated, int is_constant);
void malleability_get_entries(size_t *entries, int is_replicated, int is_constant); void malleability_get_entries(size_t *entries, int is_replicated, int is_constant);
void malleability_get_data(void **data, int index, int is_replicated, int is_constant); void malleability_get_data(void **data, size_t index, int is_replicated, int is_constant);
void set_benchmark_configuration(configuration *config_file); void set_benchmark_configuration(configuration *config_file);
void get_benchmark_configuration(configuration **config_file); void get_benchmark_configuration(configuration **config_file);
......
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