int PMPI_Init(int *argc, char ***argv)
{
- xbt_assert(simgrid::s4u::Engine::isInitialized(),
+ xbt_assert(simgrid::s4u::Engine::is_initialized(),
"Your MPI program was not properly initialized. The easiest is to use smpirun to start it.");
// PMPI_Init is called only once per SMPI process
int already_init;
TRACE_smpi_comm_in(rank, __func__, new simgrid::instr::NoOpTIData("init"));
TRACE_smpi_comm_out(rank);
TRACE_smpi_computing_init(rank);
+ TRACE_smpi_sleeping_init(rank);
smpi_bench_begin();
}
smpi_bench_end();
// FIXME: should kill all processes in comm instead
smx_actor_t process = SIMIX_process_self();
- simgrid::simix::kernelImmediate([process] { SIMIX_process_kill(process, process); });
+ simgrid::simix::simcall([process] { SIMIX_process_kill(process, process); });
return MPI_SUCCESS;
}
return MPI_SUCCESS;
}
+int PMPI_Error_string(int errorcode, char* string, int* resultlen){
+ *resultlen = strlen(smpi_error_string[errorcode]);
+ strncpy(string, smpi_error_string[errorcode], *resultlen);
+ return MPI_SUCCESS;
+}
+
int PMPI_Keyval_create(MPI_Copy_function* copy_fn, MPI_Delete_function* delete_fn, int* keyval, void* extra_state) {
smpi_copy_fn _copy_fn={copy_fn,nullptr,nullptr};
smpi_delete_fn _delete_fn={delete_fn,nullptr,nullptr};