int PMPI_Init(int *argc, char ***argv)
{
- smpi_process_init(argc, argv);
- smpi_process_mark_as_initialized();
- int rank = smpi_process_index();
- TRACE_smpi_init(rank);
- TRACE_smpi_computing_init(rank);
- instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
- extra->type = TRACING_INIT;
- TRACE_smpi_collective_in(rank, -1, __FUNCTION__, extra);
- TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- smpi_bench_begin();
+ // PMPI_Init is call only one time by only by SMPI process
+ int already_init;
+ MPI_Initialized(&already_init);
+ if(!(already_init)){
+ smpi_process_init(argc, argv);
+ smpi_process_mark_as_initialized();
+ int rank = smpi_process_index();
+ TRACE_smpi_init(rank);
+ TRACE_smpi_computing_init(rank);
+ instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+ extra->type = TRACING_INIT;
+ TRACE_smpi_collective_in(rank, -1, __FUNCTION__, extra);
+ TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
+ smpi_bench_begin();
+ }
return MPI_SUCCESS;
}
int PMPI_Init_thread(int *argc, char ***argv, int required, int *provided)
{
if (provided != NULL) {
- *provided = MPI_THREAD_MULTIPLE;
+ *provided = MPI_THREAD_SINGLE;
}
return MPI_Init(argc, argv);
}
if (provided == NULL) {
retval = MPI_ERR_ARG;
} else {
- *provided = MPI_THREAD_MULTIPLE;
+ *provided = MPI_THREAD_SINGLE;
retval = MPI_SUCCESS;
}
return retval;
{
int retval = MPI_SUCCESS;
- strncpy(name, SIMIX_host_get_name(SIMIX_host_self()),
- strlen(SIMIX_host_get_name(SIMIX_host_self())) < MPI_MAX_PROCESSOR_NAME - 1 ?
- strlen(SIMIX_host_get_name(SIMIX_host_self())) +1 :
+ strncpy(name, sg_host_get_name(SIMIX_host_self()),
+ strlen(sg_host_get_name(SIMIX_host_self())) < MPI_MAX_PROCESSOR_NAME - 1 ?
+ strlen(sg_host_get_name(SIMIX_host_self())) +1 :
MPI_MAX_PROCESSOR_NAME - 1 );
*resultlen =
strlen(name) >