for(j = 0; j < count; j++) {
if(rankmap[2 * j] != 0) {
group_snd[reqs]=smpi_group_copy(group_out);
- requests[reqs] = smpi_isend_init(&(group_snd[reqs]), 1, MPI_PTR, rankmap[2 * j], system_tag, comm);
+ requests[reqs] = smpi_mpi_isend(&(group_snd[reqs]), 1, MPI_PTR, rankmap[2 * j], system_tag, comm);
reqs++;
}
}
if(i != 0) {
smpi_group_destroy(group_out);
}
- smpi_mpi_startall(reqs, requests);
smpi_mpi_waitall(reqs, requests, MPI_STATUS_IGNORE);
xbt_free(requests);
}
if(elem && elem->delete_fn)
elem->delete_fn(comm, *key, value, &flag);
}
+ xbt_dict_free(&comm->attributes);
}
}
// If we are in replay - perform an ugly hack
// tell SimGrid we are not in replay for a while, because we need the buffers to be copied for the following calls
- int replaying = 0; //cache data to set it back again after
+ bool replaying = false; //cache data to set it back again after
if(smpi_process_get_replaying()){
- replaying=1;
- smpi_process_set_replaying(0);
+ replaying=true;
+ smpi_process_set_replaying(false);
}
if(smpi_privatize_global_variables){ //we need to switch as the called function may silently touch global variables
}
//identify neighbours in comm
//get the indexes of all processes sharing the same simix host
- xbt_swag_t process_list = simcall_host_get_process_list(SIMIX_host_self());
+ xbt_swag_t process_list = SIMIX_host_self()->processes();
int intra_comm_size = 0;
//only one process/node, disable SMP support and return
// if(intra_comm_size==1){
}
xbt_free(leader_list);
- if(replaying==1)
- smpi_process_set_replaying(1);
+ if(replaying)
+ smpi_process_set_replaying(true);
}
int smpi_comm_attr_delete(MPI_Comm comm, int keyval){