X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1d18e615eaa617d3354bc22dfbe711d34be9f902..8eb1dd81f53db215cf73319dc485f120addefe2d:/src/smpi/smpi_global.c diff --git a/src/smpi/smpi_global.c b/src/smpi/smpi_global.c index 88549955a9..c62c1036b9 100644 --- a/src/smpi/smpi_global.c +++ b/src/smpi/smpi_global.c @@ -360,6 +360,12 @@ int smpi_main(int (*realmain) (int argc, char *argv[]),int argc, char *argv[]) SIMIX_function_register_default(realmain); SIMIX_launch_application(argv[2]); + int gather_id = find_coll_description(mpi_coll_gather_description, + sg_cfg_get_string("smpi/gather")); + mpi_coll_gather_fun = (int (*)(void *, int, MPI_Datatype, + void*, int, MPI_Datatype, int, MPI_Comm)) + mpi_coll_gather_description[gather_id].coll; + int allgather_id = find_coll_description(mpi_coll_allgather_description, sg_cfg_get_string("smpi/allgather")); mpi_coll_allgather_fun = (int (*)(void *, int, MPI_Datatype, @@ -402,6 +408,24 @@ int smpi_main(int (*realmain) (int argc, char *argv[]),int argc, char *argv[]) MPI_Op op, int root, MPI_Comm comm)) mpi_coll_reduce_description[reduce_id].coll; + int reduce_scatter_id = find_coll_description(mpi_coll_reduce_scatter_description, + sg_cfg_get_string("smpi/reduce_scatter")); + mpi_coll_reduce_scatter_fun = (int (*)(void *sbuf, void *rbuf, int *rcounts,\ + MPI_Datatype dtype,MPI_Op op,MPI_Comm comm)) + mpi_coll_reduce_scatter_description[reduce_scatter_id].coll; + + int scatter_id = find_coll_description(mpi_coll_scatter_description, + sg_cfg_get_string("smpi/scatter")); + mpi_coll_scatter_fun = (int (*)(void *sendbuf, int sendcount, MPI_Datatype sendtype,\ + void *recvbuf, int recvcount, MPI_Datatype recvtype,\ + int root, MPI_Comm comm)) + mpi_coll_scatter_description[scatter_id].coll; + + int barrier_id = find_coll_description(mpi_coll_barrier_description, + sg_cfg_get_string("smpi/barrier")); + mpi_coll_barrier_fun = (int (*)(MPI_Comm comm)) + mpi_coll_barrier_description[barrier_id].coll; + smpi_global_init(); /* Clean IO before the run */ @@ -413,7 +437,7 @@ int smpi_main(int (*realmain) (int argc, char *argv[]),int argc, char *argv[]) else SIMIX_run(); - if (sg_cfg_get_int("smpi/display_timing")) + if (sg_cfg_get_boolean("smpi/display_timing")) XBT_INFO("Simulation time: %g seconds.", SIMIX_get_clock()); smpi_global_destroy();