X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7f10f2b6d78f3f91c6b7739c2cfda1bf53d4c312..def4685632b43bff625c85cb45be4acb91592d33:/src/smpi/smpi_global.c diff --git a/src/smpi/smpi_global.c b/src/smpi/smpi_global.c index b458bce363..bd66ffb33b 100644 --- a/src/smpi/smpi_global.c +++ b/src/smpi/smpi_global.c @@ -47,6 +47,7 @@ void smpi_request_reset(void *pointer) request->buf = NULL; request->completed = 0; + request->consumed = 0; request->data = NULL; request->forward = 0; @@ -121,10 +122,10 @@ int smpi_create_request(void *buf, int count, smpi_mpi_datatype_t datatype, return retval; } /* FIXME: understand what they do and put the prototypes in a header file (live in smpi_base.c) */ -void smpi_mpi_land_func(void *a, void *b, int *length, - MPI_Datatype * datatype); -void smpi_mpi_sum_func(void *a, void *b, int *length, - MPI_Datatype * datatype); +void smpi_mpi_land_func(void *a, void *b, int *length, MPI_Datatype * datatype); +void smpi_mpi_sum_func(void *a, void *b, int *length, MPI_Datatype * datatype); +void smpi_mpi_min_func(void *a, void *b, int *length, MPI_Datatype * datatype); +void smpi_mpi_max_func(void *a, void *b, int *length, MPI_Datatype * datatype); void smpi_global_init() { @@ -189,6 +190,8 @@ void smpi_global_init() smpi_mpi_global->mpi_byte->size = (size_t) 1; smpi_mpi_global->mpi_int = xbt_new(s_smpi_mpi_datatype_t, 1); smpi_mpi_global->mpi_int->size = sizeof(int); + smpi_mpi_global->mpi_float = xbt_new(s_smpi_mpi_datatype_t, 1); + smpi_mpi_global->mpi_float->size = sizeof(float); smpi_mpi_global->mpi_double = xbt_new(s_smpi_mpi_datatype_t, 1); smpi_mpi_global->mpi_double->size = sizeof(double); @@ -197,6 +200,10 @@ void smpi_global_init() smpi_mpi_global->mpi_land->func = smpi_mpi_land_func; smpi_mpi_global->mpi_sum = xbt_new(s_smpi_mpi_op_t, 1); smpi_mpi_global->mpi_sum->func = smpi_mpi_sum_func; + smpi_mpi_global->mpi_min = xbt_new(s_smpi_mpi_op_t, 1); + smpi_mpi_global->mpi_min->func = smpi_mpi_min_func; + smpi_mpi_global->mpi_max = xbt_new(s_smpi_mpi_op_t, 1); + smpi_mpi_global->mpi_max->func = smpi_mpi_max_func; } @@ -229,14 +236,18 @@ void smpi_global_destroy() /* free smpi_mpi_global */ SIMIX_mutex_destroy(smpi_mpi_global->mpi_comm_world->barrier_mutex); SIMIX_cond_destroy(smpi_mpi_global->mpi_comm_world->barrier_cond); + xbt_free(smpi_mpi_global->mpi_comm_world->rank_to_index_map); xbt_free(smpi_mpi_global->mpi_comm_world); xbt_free(smpi_mpi_global->mpi_byte); xbt_free(smpi_mpi_global->mpi_int); xbt_free(smpi_mpi_global->mpi_double); + xbt_free(smpi_mpi_global->mpi_float); xbt_free(smpi_mpi_global->mpi_land); xbt_free(smpi_mpi_global->mpi_sum); + xbt_free(smpi_mpi_global->mpi_max); + xbt_free(smpi_mpi_global->mpi_min); xbt_free(smpi_mpi_global);