1
1

Fix a small problem with the handling of requests in MPI_Alltoall.

Этот коммит содержится в:
George Bosilca 2015-02-16 01:13:44 -05:00
родитель 3f757bc8cb
Коммит 44d590b8fd

Просмотреть файл

@ -603,7 +603,6 @@ int ompi_coll_base_alltoall_intra_basic_linear(void *sbuf, int scount,
/* Initiate all send/recv to/from others. */ /* Initiate all send/recv to/from others. */
req = rreq = coll_base_comm_get_reqs(data, (size - 1) * 2); req = rreq = coll_base_comm_get_reqs(data, (size - 1) * 2);
sreq = rreq + size - 1;
prcv = (char *) rbuf; prcv = (char *) rbuf;
psnd = (char *) sbuf; psnd = (char *) sbuf;
@ -612,8 +611,7 @@ int ompi_coll_base_alltoall_intra_basic_linear(void *sbuf, int scount,
for (nreqs = 0, i = (rank + 1) % size; i != rank; for (nreqs = 0, i = (rank + 1) % size; i != rank;
i = (i + 1) % size, ++rreq, ++nreqs) { i = (i + 1) % size, ++rreq, ++nreqs) {
err = err = MCA_PML_CALL(irecv_init
MCA_PML_CALL(irecv_init
(prcv + (ptrdiff_t)i * rcvinc, rcount, rdtype, i, (prcv + (ptrdiff_t)i * rcvinc, rcount, rdtype, i,
MCA_COLL_BASE_TAG_ALLTOALL, comm, rreq)); MCA_COLL_BASE_TAG_ALLTOALL, comm, rreq));
if (MPI_SUCCESS != err) { if (MPI_SUCCESS != err) {
@ -626,10 +624,10 @@ int ompi_coll_base_alltoall_intra_basic_linear(void *sbuf, int scount,
- We would like to minimize the search time through message queue - We would like to minimize the search time through message queue
when messages actually arrive in the order in which they were posted. when messages actually arrive in the order in which they were posted.
*/ */
for (nreqs = 0, i = (rank + size - 1) % size; i != rank; sreq = rreq;
for (i = (rank + size - 1) % size; i != rank;
i = (i + size - 1) % size, ++sreq, ++nreqs) { i = (i + size - 1) % size, ++sreq, ++nreqs) {
err = err = MCA_PML_CALL(isend_init
MCA_PML_CALL(isend_init
(psnd + (ptrdiff_t)i * sndinc, scount, sdtype, i, (psnd + (ptrdiff_t)i * sndinc, scount, sdtype, i,
MCA_COLL_BASE_TAG_ALLTOALL, MCA_COLL_BASE_TAG_ALLTOALL,
MCA_PML_BASE_SEND_STANDARD, comm, sreq)); MCA_PML_BASE_SEND_STANDARD, comm, sreq));