double smpi_total_benched_time = 0;
extern "C" XBT_PUBLIC void smpi_execute_flops_(double* flops);
+extern "C" XBT_PUBLIC simgrid::config::Flag<double> smpi_wtime_sleep;
+
void smpi_execute_flops_(double *flops)
{
smpi_execute_flops(*flops);
void smpi_execute_flops(double flops) {
xbt_assert(flops >= 0, "You're trying to execute a negative amount of flops (%f)!", flops);
XBT_DEBUG("Handle real computation time: %f flops", flops);
- simgrid::s4u::this_actor::exec_init(flops)->set_name("computation")->start()->wait();
- // FIXME adding this break smpi/tracing example... ->set_tracing_category(TRACE_internal_smpi_get_category())
+ simgrid::s4u::this_actor::exec_init(flops)
+ ->set_name("computation")
+ ->set_tracing_category(TRACE_internal_smpi_get_category())
+ ->start()
+ ->wait();
smpi_switch_data_segment(simgrid::s4u::Actor::self());
}
tv->tv_usec = static_cast<suseconds_t>((now - tv->tv_sec) * 1e6);
#endif
}
+ if(smpi_wtime_sleep > 0)
+ simcall_process_sleep(smpi_wtime_sleep);
smpi_bench_begin();
return 0;
}
tp->tv_sec = static_cast<time_t>(now);
tp->tv_nsec = static_cast<long int>((now - tp->tv_sec) * 1e9);
}
+ if(smpi_wtime_sleep > 0)
+ simcall_process_sleep(smpi_wtime_sleep);
smpi_bench_begin();
return 0;
}