COLL/BASE: Fix linear sync all2all
Signed-off-by: Mikhail Brinskii <mikhailb@mellanox.com>
(cherry picked from commit 79006f4e5a
)
Этот коммит содержится в:
родитель
bd602cc3a0
Коммит
adba7f55f7
@ -398,22 +398,22 @@ int ompi_coll_base_alltoall_intra_linear_sync(const void *sbuf, int scount,
|
||||
prcv = (char *) rbuf;
|
||||
psnd = (char *) sbuf;
|
||||
|
||||
/* Post first batch or ireceive and isend requests */
|
||||
/* Post first batch of irecv and isend requests */
|
||||
for (nreqs = 0, nrreqs = 0, ri = (rank + 1) % size; nreqs < total_reqs;
|
||||
ri = (ri + 1) % size, ++nrreqs) {
|
||||
nreqs++;
|
||||
error = MCA_PML_CALL(irecv
|
||||
(prcv + (ptrdiff_t)ri * rext, rcount, rdtype, ri,
|
||||
MCA_COLL_BASE_TAG_ALLTOALL, comm, &reqs[nreqs]));
|
||||
nreqs++;
|
||||
if (MPI_SUCCESS != error) { line = __LINE__; goto error_hndl; }
|
||||
}
|
||||
for (nsreqs = 0, si = (rank + size - 1) % size; nreqs < 2 * total_reqs;
|
||||
si = (si + size - 1) % size, ++nsreqs) {
|
||||
nreqs++;
|
||||
error = MCA_PML_CALL(isend
|
||||
(psnd + (ptrdiff_t)si * sext, scount, sdtype, si,
|
||||
MCA_COLL_BASE_TAG_ALLTOALL,
|
||||
MCA_PML_BASE_SEND_STANDARD, comm, &reqs[nreqs]));
|
||||
nreqs++;
|
||||
if (MPI_SUCCESS != error) { line = __LINE__; goto error_hndl; }
|
||||
}
|
||||
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user