X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/46c7981905414e7342d681be4f10709f8ef4009e..4dcdf4c43798ec5cfd6393c51768330cf5dfeb1d:/src/smpi/smpi_global.c diff --git a/src/smpi/smpi_global.c b/src/smpi/smpi_global.c index ad839cbbf5..c43f3f2d30 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++) { @@ -236,25 +246,8 @@ int MAIN__(void) { srand(SMPI_RAND_SEED); - double default_reference_speed = 20000.0; - xbt_cfg_register(&_surf_cfg_set, "smpi/running_power", - "Power of the host running the simulation (in flop/s). Used to bench the operations.", - xbt_cfgelm_double, &default_reference_speed, 1, 1, NULL, - NULL); - - int default_display_timing = 0; - xbt_cfg_register(&_surf_cfg_set, "smpi/display_timing", - "Boolean indicating whether we should display the timing after simulation.", - xbt_cfgelm_int, &default_display_timing, 1, 1, NULL, - NULL); - - double default_threshold = 1e-6; - xbt_cfg_register(&_surf_cfg_set, "smpi/cpu_threshold", - "Minimal computation time (in seconds) not discarded.", - xbt_cfgelm_double, &default_threshold, 1, 1, NULL, - 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 +264,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 +279,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();