X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/12c0f182635ed71b370d608b5b9a614153765cd4..0e9c0448c6566825b170b98ecff716b098bda10e:/src/smpi/colls/scatter-ompi.c diff --git a/src/smpi/colls/scatter-ompi.c b/src/smpi/colls/scatter-ompi.c index 205d60287c..c65b6f9511 100644 --- a/src/smpi/colls/scatter-ompi.c +++ b/src/smpi/colls/scatter-ompi.c @@ -20,7 +20,6 @@ #include "colls_private.h" #include "coll_tuned_topo.h" -#define MCA_COLL_BASE_TAG_SCATTER 111 int smpi_coll_tuned_scatter_ompi_binomial(void *sbuf, int scount, @@ -101,7 +100,7 @@ smpi_coll_tuned_scatter_ompi_binomial(void *sbuf, int scount, } total_send = scount; } else if (!(vrank % 2)) { - /* non-root, non-leaf nodes, allocte temp buffer for recv + /* non-root, non-leaf nodes, allocate temp buffer for recv * the most we need is rcount*size/2 */ tempbuf = (char *) malloc(rtrue_extent + (rcount*size - 1) * rextent); if (NULL == tempbuf) { @@ -123,7 +122,7 @@ smpi_coll_tuned_scatter_ompi_binomial(void *sbuf, int scount, if (rank != root) { /* recv from parent on non-root */ smpi_mpi_recv(ptmp, rcount*size, rdtype, bmtree->tree_prev, - MCA_COLL_BASE_TAG_SCATTER, comm, &status); + COLL_TAG_SCATTER, comm, &status); /* local copy to rbuf */ err = smpi_datatype_copy(ptmp, scount, sdtype, rbuf, rcount, rdtype); @@ -140,7 +139,7 @@ smpi_coll_tuned_scatter_ompi_binomial(void *sbuf, int scount, smpi_mpi_send(ptmp + total_send*sextent, mycount, sdtype, bmtree->tree_next[i], - MCA_COLL_BASE_TAG_SCATTER, + COLL_TAG_SCATTER, comm); total_send += mycount; @@ -151,8 +150,10 @@ smpi_coll_tuned_scatter_ompi_binomial(void *sbuf, int scount, } else { /* recv from parent on leaf nodes */ smpi_mpi_recv(ptmp, rcount, rdtype, bmtree->tree_prev, - MCA_COLL_BASE_TAG_SCATTER, comm, &status); + COLL_TAG_SCATTER, comm, &status); } + //!FIXME : store the tree, as done in ompi, instead of calculating it each time ? + xbt_free(bmtree); return MPI_SUCCESS; @@ -207,7 +208,7 @@ smpi_coll_tuned_scatter_ompi_basic_linear(void *sbuf, int scount, if (rank != root) { smpi_mpi_recv(rbuf, rcount, rdtype, root, - MCA_COLL_BASE_TAG_SCATTER, + COLL_TAG_SCATTER, comm, MPI_STATUS_IGNORE); return MPI_SUCCESS; } @@ -232,7 +233,7 @@ smpi_coll_tuned_scatter_ompi_basic_linear(void *sbuf, int scount, } } else { smpi_mpi_send(ptmp, scount, sdtype, i, - MCA_COLL_BASE_TAG_SCATTER, + COLL_TAG_SCATTER, comm); } if (MPI_SUCCESS != err) {