#include "colls_private.h"
-#define MPIR_REDUCE_SCATTER_TAG 222
static inline int MPIU_Mirror_permutation(unsigned int x, int bits)
{
if (sendbuf != MPI_IN_PLACE)
smpi_mpi_sendrecv(((char *)sendbuf+disps[dst]*extent),
recvcounts[dst], datatype, dst,
- MPIR_REDUCE_SCATTER_TAG, tmp_recvbuf,
+ COLL_TAG_SCATTER, tmp_recvbuf,
recvcounts[rank], datatype, src,
- MPIR_REDUCE_SCATTER_TAG, comm,
+ COLL_TAG_SCATTER, comm,
MPI_STATUS_IGNORE);
else
smpi_mpi_sendrecv(((char *)recvbuf+disps[dst]*extent),
recvcounts[dst], datatype, dst,
- MPIR_REDUCE_SCATTER_TAG, tmp_recvbuf,
+ COLL_TAG_SCATTER, tmp_recvbuf,
recvcounts[rank], datatype, src,
- MPIR_REDUCE_SCATTER_TAG, comm,
+ COLL_TAG_SCATTER, comm,
MPI_STATUS_IGNORE);
if (is_commutative || (src < rank)) {
}
smpi_mpi_sendrecv(outgoing_data + send_offset*true_extent,
- size, datatype, peer, MPIR_REDUCE_SCATTER_TAG,
+ size, datatype, peer, COLL_TAG_SCATTER,
incoming_data + recv_offset*true_extent,
- size, datatype, peer, MPIR_REDUCE_SCATTER_TAG,
+ size, datatype, peer, COLL_TAG_SCATTER,
comm, MPI_STATUS_IGNORE);
/* always perform the reduction at recv_offset, the data at send_offset
is now our peer's responsibility */
int mask, dst_tree_root, my_tree_root, j, k;
int received;
MPI_Datatype sendtype, recvtype;
- int nprocs_completed, tmp_mask, tree_root, is_commutative;
+ int nprocs_completed, tmp_mask, tree_root, is_commutative=0;
comm_size = smpi_comm_size(comm);
rank = smpi_comm_rank(comm);
tmp_results. accumulation is done later below. */
smpi_mpi_sendrecv(tmp_results, 1, sendtype, dst,
- MPIR_REDUCE_SCATTER_TAG,
+ COLL_TAG_SCATTER,
tmp_recvbuf, 1, recvtype, dst,
- MPIR_REDUCE_SCATTER_TAG, comm,
+ COLL_TAG_SCATTER, comm,
MPI_STATUS_IGNORE);
received = 1;
}
&& (dst >= tree_root + nprocs_completed)) {
/* send the current result */
smpi_mpi_send(tmp_recvbuf, 1, recvtype,
- dst, MPIR_REDUCE_SCATTER_TAG,
+ dst, COLL_TAG_SCATTER,
comm);
}
/* recv only if this proc. doesn't have data and sender
(dst < tree_root + nprocs_completed) &&
(rank >= tree_root + nprocs_completed)) {
smpi_mpi_recv(tmp_recvbuf, 1, recvtype, dst,
- MPIR_REDUCE_SCATTER_TAG,
+ COLL_TAG_SCATTER,
comm, MPI_STATUS_IGNORE);
received = 1;
}