Skip to content

Commit 234e35c

Browse files
authored
Merge pull request #9648 from mkurnosov/coll-base-alltoall-fix
coll/base/alltoall: fixes send/recv offsets in rbuf for the case of MPI_IN_PLACE
2 parents 81aeea5 + aba6765 commit 234e35c

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

ompi/mca/coll/base/coll_base_alltoall.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,19 +101,19 @@ mca_coll_base_alltoall_intra_basic_inplace(const void *rbuf, int rcount,
101101
ompi_proc_t *right_proc = ompi_comm_peer_lookup(comm, right);
102102
opal_convertor_clone(right_proc->super.proc_convertor, &convertor, 0);
103103
opal_convertor_prepare_for_send(&convertor, &rdtype->super, rcount,
104-
(char *) rbuf + right * extent);
104+
(char *) rbuf + right * rcount * extent);
105105
packed_size = max_size;
106106
err = opal_convertor_pack(&convertor, &iov, &iov_count, &packed_size);
107107
if (1 != err) { goto error_hndl; }
108108

109109
/* Receive data from the right */
110-
err = MCA_PML_CALL(irecv ((char *) rbuf + right * extent, rcount, rdtype,
110+
err = MCA_PML_CALL(irecv ((char *) rbuf + right * rcount * extent, rcount, rdtype,
111111
right, MCA_COLL_BASE_TAG_ALLTOALLW, comm, &req));
112112
if (MPI_SUCCESS != err) { goto error_hndl; }
113113

114114
if( left != right ) {
115115
/* Send data to the left */
116-
err = MCA_PML_CALL(send ((char *) rbuf + left * extent, rcount, rdtype,
116+
err = MCA_PML_CALL(send ((char *) rbuf + left * rcount * extent, rcount, rdtype,
117117
left, MCA_COLL_BASE_TAG_ALLTOALLW, MCA_PML_BASE_SEND_STANDARD,
118118
comm));
119119
if (MPI_SUCCESS != err) { goto error_hndl; }
@@ -122,7 +122,7 @@ mca_coll_base_alltoall_intra_basic_inplace(const void *rbuf, int rcount,
122122
if (MPI_SUCCESS != err) { goto error_hndl; }
123123

124124
/* Receive data from the left */
125-
err = MCA_PML_CALL(irecv ((char *) rbuf + left * extent, rcount, rdtype,
125+
err = MCA_PML_CALL(irecv ((char *) rbuf + left * rcount * extent, rcount, rdtype,
126126
left, MCA_COLL_BASE_TAG_ALLTOALLW, comm, &req));
127127
if (MPI_SUCCESS != err) { goto error_hndl; }
128128
}

0 commit comments

Comments
 (0)