if (block_dsize > large_message && count >= pof2 && smpi_op_is_commute(op)) {
//for long messages
- return (smpi_coll_tuned_allreduce_rab_rsag (sbuf, rbuf,
+ return (smpi_coll_tuned_allreduce_rab_rdb (sbuf, rbuf,
count, dtype,
op, comm));
}else {
comm);
} else if (block_dsize < medium_size) {
- return smpi_coll_tuned_alltoall_simple(sbuf, scount, sdtype,
+ return smpi_coll_tuned_alltoall_basic_linear(sbuf, scount, sdtype,
rbuf, rcount, rdtype,
comm);
}else if (communicator_size%2){
comm);
}
- return smpi_coll_tuned_alltoall_ompi_pairwise (sbuf, scount, sdtype,
+ return smpi_coll_tuned_alltoall_ring (sbuf, scount, sdtype,
rbuf, rcount, rdtype,
comm);
}
scount=rcount;
sdtype=rdtype;
}
- return smpi_coll_tuned_scatter_ompi_binomial (sbuf, scount, sdtype,
+ int ret= smpi_coll_tuned_scatter_ompi_binomial (sbuf, scount, sdtype,
rbuf, rcount, rdtype,
root, comm);
+ if(smpi_comm_rank(comm)!=root){
+ xbt_free(sbuf);
+ }
+ return ret;
}