comm->leaders_comm=leaders;
}
void smpi_comm_set_intra_comm(MPI_Comm comm, MPI_Comm leaders){
comm->leaders_comm=leaders;
}
void smpi_comm_set_intra_comm(MPI_Comm comm, MPI_Comm leaders){
if(comm==MPI_COMM_WORLD) return smpi_process_get_comm_intra();
else return comm->intra_comm;
}
int smpi_comm_is_uniform(MPI_Comm comm){
if(comm==MPI_COMM_WORLD) return smpi_process_get_comm_intra();
else return comm->intra_comm;
}
int smpi_comm_is_uniform(MPI_Comm comm){
smpi_coll_tuned_allgather_mpich(&leader, 1, MPI_INT , leaders_map, 1, MPI_INT, comm);
if(smpi_privatize_global_variables){ //we need to switch here, as the called function may silently touch global variables
smpi_coll_tuned_allgather_mpich(&leader, 1, MPI_INT , leaders_map, 1, MPI_INT, comm);
if(smpi_privatize_global_variables){ //we need to switch here, as the called function may silently touch global variables
smpi_coll_tuned_bcast_mpich(&(comm->is_uniform),1, MPI_INT, 0, comm_intra );
if(smpi_privatize_global_variables){ //we need to switch here, as the called function may silently touch global variables
smpi_coll_tuned_bcast_mpich(&(comm->is_uniform),1, MPI_INT, 0, comm_intra );
if(smpi_privatize_global_variables){ //we need to switch here, as the called function may silently touch global variables