/* selector for collective algorithms based on mpich decision logic */
-/* Copyright (c) 2009, 2010. The SimGrid Team.
+/* Copyright (c) 2009-2010, 2013. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
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);
}
int comm_size, i;
size_t total_message_size;
- if(sbuf==rbuf)sbuf=MPI_IN_PLACE; //restore MPI_IN_PLACE as these algos handle it
+ if(sbuf==rbuf)sbuf=MPI_IN_PLACE; //restore MPI_IN_PLACE as these algorithms handle it
XBT_DEBUG("smpi_coll_tuned_reduce_scatter_mpich");
rbuf, rcounts, rdispls, rdtype,
comm);
}
- return smpi_coll_tuned_allgatherv_ring(sbuf, scount, sdtype,
+ return smpi_coll_tuned_allgatherv_mpich_ring(sbuf, scount, sdtype,
rbuf, rcounts, rdispls, 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;
}