void ComputeAction::kernel(simgrid::xbt::ReplayAction&)
{
- TRACE_smpi_computing_in(my_proc_id, args.flops);
smpi_execute_flops(args.flops);
- TRACE_smpi_computing_out(my_proc_id);
}
void TestAction::kernel(simgrid::xbt::ReplayAction&)
Colls::reduce(send_buffer(args.comm_size * args.datatype1->size()),
recv_buffer(args.comm_size * args.datatype1->size()), args.comm_size, args.datatype1, MPI_OP_NULL, args.root, MPI_COMM_WORLD);
- smpi_execute_flops(args.comp_size);
+ private_execute_flops(args.comp_size);
TRACE_smpi_comm_out(my_proc_id);
}
Colls::allreduce(send_buffer(args.comm_size * args.datatype1->size()),
recv_buffer(args.comm_size * args.datatype1->size()), args.comm_size, args.datatype1, MPI_OP_NULL, MPI_COMM_WORLD);
- smpi_execute_flops(args.comp_size);
+ private_execute_flops(args.comp_size);
TRACE_smpi_comm_out(my_proc_id);
}
recv_buffer(args.recv_size_sum * args.datatype1->size()), args.recvcounts->data(),
args.datatype1, MPI_OP_NULL, MPI_COMM_WORLD);
- smpi_execute_flops(args.comp_size);
+ private_execute_flops(args.comp_size);
TRACE_smpi_comm_out(my_proc_id);
}
/** @brief Only initialize the replay, don't do it for real */
void smpi_replay_init(const char* instance_id, int rank, double start_delay_flops)
{
- if (not smpi_process()->initializing()){
- simgrid::s4u::Actor::self()->set_property("instance_id", instance_id);
- simgrid::s4u::Actor::self()->set_property("rank", std::to_string(rank));
- simgrid::smpi::ActorExt::init();
- }
+ xbt_assert(not smpi_process()->initializing());
+
+ simgrid::s4u::Actor::self()->set_property("instance_id", instance_id);
+ simgrid::s4u::Actor::self()->set_property("rank", std::to_string(rank));
+ simgrid::smpi::ActorExt::init();
+
smpi_process()->mark_as_initialized();
smpi_process()->set_replaying(true);
//if we have a delayed start, sleep here.
if (start_delay_flops > 0) {
XBT_VERB("Delayed start for instance - Sleeping for %f flops ", start_delay_flops);
- smpi_execute_flops(start_delay_flops);
+ private_execute_flops(start_delay_flops);
} else {
// Wait for the other actors to initialize also
simgrid::s4u::this_actor::yield();