A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
smpi leak --
[simgrid.git]
/
src
/
smpi
/
colls
/
smpi_mpich_selector.c
diff --git
a/src/smpi/colls/smpi_mpich_selector.c
b/src/smpi/colls/smpi_mpich_selector.c
index
8a2124a
..
d82c2a3
100644
(file)
--- a/
src/smpi/colls/smpi_mpich_selector.c
+++ b/
src/smpi/colls/smpi_mpich_selector.c
@@
-74,7
+74,7
@@
int smpi_coll_tuned_allreduce_mpich(void *sbuf, void *rbuf, int count,
if (block_dsize > large_message && count >= pof2 && smpi_op_is_commute(op)) {
//for long messages
if (block_dsize > large_message && count >= pof2 && smpi_op_is_commute(op)) {
//for long messages
- return (smpi_coll_tuned_allreduce_rab_r
sag
(sbuf, rbuf,
+ return (smpi_coll_tuned_allreduce_rab_r
db
(sbuf, rbuf,
count, dtype,
op, comm));
}else {
count, dtype,
op, comm));
}else {
@@
-167,7
+167,7
@@
int smpi_coll_tuned_alltoall_mpich( void *sbuf, int scount,
comm);
} else if (block_dsize < medium_size) {
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){
rbuf, rcount, rdtype,
comm);
}else if (communicator_size%2){
@@
-176,7
+176,7
@@
int smpi_coll_tuned_alltoall_mpich( void *sbuf, int scount,
comm);
}
comm);
}
- return smpi_coll_tuned_alltoall_
ompi_pairwise
(sbuf, scount, sdtype,
+ return smpi_coll_tuned_alltoall_
ring
(sbuf, scount, sdtype,
rbuf, rcount, rdtype,
comm);
}
rbuf, rcount, rdtype,
comm);
}
@@
-696,8
+696,12
@@
int smpi_coll_tuned_scatter_mpich(void *sbuf, int scount,
scount=rcount;
sdtype=rdtype;
}
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);
rbuf, rcount, rdtype,
root, comm);
+ if(smpi_comm_rank(comm)!=root){
+ xbt_free(sbuf);
+ }
+ return ret;
}
}