request->buf = NULL;
request->completed = 0;
+ request->consumed = 0;
request->data = NULL;
request->forward = 0;
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()
{
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);
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;
}
/* 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);