X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/46c7981905414e7342d681be4f10709f8ef4009e..1ae612ef301a26795068505cf761169ed29a5451:/src/smpi/smpi_global.c diff --git a/src/smpi/smpi_global.c b/src/smpi/smpi_global.c index ad839cbbf5..470be9c857 100644 --- a/src/smpi/smpi_global.c +++ b/src/smpi/smpi_global.c @@ -70,6 +70,17 @@ void smpi_process_destroy(void) XBT_DEBUG("<%d> Process left the game", index); } +/** + * @brief Prepares the current process for termination. + */ +void smpi_process_finalize(void) +{ + // wait for all pending asynchronous comms to finish + while (SIMIX_process_has_pending_comms(SIMIX_process_self())) { + SIMIX_req_process_sleep(1); + } +} + int smpi_process_argc(void) { smpi_process_data_t data = smpi_process_data(); @@ -107,7 +118,7 @@ int smpi_global_size(void) { smpi_process_data_t smpi_process_data(void) { - return SIMIX_process_self_get_data(); + return SIMIX_process_self_get_data(SIMIX_process_self()); } smpi_process_data_t smpi_process_remote_data(int index) @@ -180,8 +191,7 @@ void smpi_global_init(void) MPI_Group group; char name[MAILBOX_NAME_MAXLEN]; - SIMIX_comm_set_copy_data_callback - (&SIMIX_comm_copy_buffer_callback); + SIMIX_comm_set_copy_data_callback(&smpi_comm_copy_data_callback); process_count = SIMIX_process_count(); process_data = xbt_new(smpi_process_data_t, process_count); for (i = 0; i < process_count; i++) { @@ -255,6 +265,7 @@ int MAIN__(void) NULL); if(getenv("SMPI_PRETEND_CC") != NULL) { + /* Hack to ensure that smpicc can pretend to be a simple compiler. Particularly handy to pass it to the configuration tools */ return 0; } @@ -271,7 +282,7 @@ int MAIN__(void) // parse the platform file: get the host list SIMIX_create_environment(xargv[1]); - SIMIX_function_register("smpi_simulated_main", smpi_simulated_main); + SIMIX_function_register_default(smpi_simulated_main); SIMIX_launch_application(xargv[2]); smpi_global_init(); @@ -286,7 +297,7 @@ int MAIN__(void) SIMIX_run(); if (xbt_cfg_get_int(_surf_cfg_set, "smpi/display_timing")) - XBT_INFO("simulation time %g", SIMIX_get_clock()); + XBT_INFO("Simulation time: %g seconds.", SIMIX_get_clock()); smpi_global_destroy();