xbt_assert(simgrid::s4u::Engine::is_initialized(),
"Your MPI program was not properly initialized. The easiest is to use smpirun to start it.");
- // Init is called only once per SMPI process
- if (not smpi_process()->initializing()){
- simgrid::smpi::ActorExt::init();
- }
- if (not smpi_process()->initialized()){
- int rank_traced = simgrid::s4u::this_actor::get_pid();
- TRACE_smpi_init(rank_traced);
- TRACE_smpi_comm_in(rank_traced, __func__, new simgrid::instr::NoOpTIData("init"));
- TRACE_smpi_comm_out(rank_traced);
- TRACE_smpi_computing_init(rank_traced);
- TRACE_smpi_sleeping_init(rank_traced);
- smpi_bench_begin();
- smpi_process()->mark_as_initialized();
- }
+ xbt_assert(not smpi_process()->initializing());
+ xbt_assert(not smpi_process()->initialized());
+
+ simgrid::smpi::ActorExt::init();
+ int rank_traced = simgrid::s4u::this_actor::get_pid();
+ TRACE_smpi_init(rank_traced);
+ TRACE_smpi_comm_in(rank_traced, __func__, new simgrid::instr::NoOpTIData("init"));
+ TRACE_smpi_comm_out(rank_traced);
+ TRACE_smpi_computing_init(rank_traced);
+ TRACE_smpi_sleeping_init(rank_traced);
+ smpi_bench_begin();
+ smpi_process()->mark_as_initialized();
smpi_mpi_init();
smpi_process()->finalize();
TRACE_smpi_comm_out(rank_traced);
- TRACE_smpi_finalize(rank_traced);
return MPI_SUCCESS;
}
smpi_bench_end();
// FIXME: should kill all processes in comm instead
smx_actor_t actor = SIMIX_process_self();
- simgrid::simix::simcall([actor] { actor->exit(); });
+ simgrid::kernel::actor::simcall([actor] { actor->exit(); });
return MPI_SUCCESS;
}