char* start_data_exe = NULL;
int size_data_exe = 0;
int smpi_privatize_global_variables;
+double smpi_total_benched_time = 0;
+
smpi_privatisation_region_t smpi_privatisation_regions;
if (sg_cfg_get_boolean("smpi/simulate_computation")) {
smpi_execute(xbt_os_timer_elapsed(timer));
}
+
+ smpi_total_benched_time += xbt_os_timer_elapsed(timer);
}
/* Private sleep function used by smpi_sleep() and smpi_usleep() */
static smpi_process_data_t *process_data = NULL;
int process_count = 0;
int* index_to_process_data = NULL;
-
-
+extern double smpi_total_benched_time;
+xbt_os_timer_t global_timer;
MPI_Comm MPI_COMM_WORLD = MPI_COMM_UNINITIALIZED;
int MPI_UNIVERSE_SIZE;
void *buff, size_t buff_size)
{
XBT_DEBUG("Copy the data over");
- if(_xbt_replay_is_active()) return;
void* tmpbuff=buff;
if((smpi_privatize_global_variables)
char name[MAILBOX_NAME_MAXLEN];
int smpirun=0;
-
+ global_timer = xbt_os_timer_new();
+ xbt_os_walltimer_start(global_timer);
if (process_count == 0){
process_count = SIMIX_process_count();
smpirun=1;
MC_do_the_modelcheck_for_real();
else
SIMIX_run();
+ xbt_os_walltimer_stop(global_timer);
+ if (sg_cfg_get_boolean("smpi/display_timing")){
+ double global_time = xbt_os_timer_elapsed(global_timer);
+ XBT_INFO("Simulated time: %g seconds. \n "
+ "The simulation took %g seconds (after parsing and platform setup)\n"
+ "%g seconds were actual computation of the application"
+ , SIMIX_get_clock(), global_time , smpi_total_benched_time);
+
+ if (smpi_total_benched_time/global_time>=0.75)
+ XBT_INFO("More than 75%% of the time was spent inside the application code.\n"
+ "You may want to use sampling functions or trace replay to reduce this.");
- if (sg_cfg_get_boolean("smpi/display_timing"))
- XBT_INFO("Simulation time: %g seconds.", SIMIX_get_clock());
+ }
smpi_global_destroy();