smx_rdv_t mailbox_small;
xbt_os_timer_t timer;
MPI_Comm comm_self;
+ MPI_Comm comm_intra;
MPI_Comm* comm_world;
void *data; /* user data */
int index;
data->argv = argv;
// set the process attached to the mailbox
simcall_rdv_set_receiver(data->mailbox_small, proc);
+
XBT_DEBUG("<%d> New process in the game: %p", index, proc);
if(smpi_privatize_global_variables){
return data->comm_self;
}
+MPI_Comm smpi_process_get_comm_intra(void)
+{
+ smpi_process_data_t data = smpi_process_data();
+ return data->comm_intra;
+}
+
+void smpi_process_set_comm_intra(MPI_Comm comm)
+{
+ smpi_process_data_t data = smpi_process_data();
+ data->comm_intra = comm;
+}
+
void smpi_process_set_sampling(int s)
{
smpi_process_data_t data = smpi_process_data();
return data->sampling;
}
+
void print_request(const char *message, MPI_Request request)
{
XBT_DEBUG
if (MC_is_active())
MC_ignore_heap(process_data[i]->timer, xbt_os_timer_size());
process_data[i]->comm_self = MPI_COMM_NULL;
+ process_data[i]->comm_intra = MPI_COMM_NULL;
process_data[i]->comm_world = NULL;
process_data[i]->state = SMPI_UNINITIALIZED;
process_data[i]->sampling = 0;
smpi_group_unuse(smpi_comm_group(process_data[i]->comm_self));
smpi_comm_destroy(process_data[i]->comm_self);
}
+ if(process_data[i]->comm_intra!=MPI_COMM_NULL){
+ smpi_group_unuse(smpi_comm_group(process_data[i]->comm_intra));
+ smpi_comm_destroy(process_data[i]->comm_intra);
+ }
xbt_os_timer_free(process_data[i]->timer);
simcall_rdv_destroy(process_data[i]->mailbox);
simcall_rdv_destroy(process_data[i]->mailbox_small);