Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v4.1.x: Backport alltoall in place fixes #9672

Merged

Conversation

bwbarrett
Copy link
Member

Backport a couple of different patch series which started as fix for #9329, included some performance fixes, and then fixes for our fixes (including fixing #9501).

ggouaillardet and others added 9 commits November 16, 2021 18:48
The temporary buffer must be shifted by the true_extent on a
per type basis (since the various datatypes might have different
true_extent).

Thanks Heiko Bauke for reporting this.

Refs. open-mpi#9329

Signed-off-by: Gilles Gouaillardet <[email protected]>
(cherry picked from commit 0041ce8)
Signed-off-by: Brian Barrett <[email protected]>
This function can be used to compute the packed size of a datatype on a
target architecture.

Signed-off-by: George Bosilca <[email protected]>
(cherry picked from commit 74049fc)
Signed-off-by: Brian Barrett <[email protected]>
Dont copy the datatype into a buffer with the same extent, but instead
pack it and send it to the peer as packed.

Signed-off-by: George Bosilca <[email protected]>
(cherry picked from commit 447b289)
Signed-off-by: Brian Barrett <[email protected]>
Provide optimized variant for the homogeneous case.

Signed-off-by: George Bosilca <[email protected]>
(cherry picked from commit dc4e2ce)
Signed-off-by: Brian Barrett <[email protected]>
Signed-off-by: George Bosilca <[email protected]>
(cherry picked from commit b9012a3)
Signed-off-by: Brian Barrett <[email protected]>
Signed-off-by: Mikhail Kurnosov <[email protected]>
(cherry picked from commit aba6765)
Signed-off-by: Brian Barrett <[email protected]>
b9012a3 accidently set the message tags for the alltoall and
alltoallv in place algorithms to the alltoallw tag.  Undo that
change.

Signed-off-by: Brian Barrett <[email protected]>
(cherry picked from commit f32dc49)
b9012a3 used the alltoallw interpretation of rdisps instead of the
alltoall/alltoallv interpretation.  According to the MPI standard,
the byte displacement is recvbuf + rdispls[i] * extent(recvtype) for
alltoall and alltoallv, but is recvbuf + rdispls[i] for alltoallw.

Signed-off-by: Brian Barrett <[email protected]>
(cherry picked from commit d8c50a5)
Without waiting for the last receive before going to the next iteration we
might overwrite data if the current left neighbor become the right at the next
iteration.

Start with an MPI_REQUEST_NULL request.
If the request is not NULL and the first rcounts is 0, the ompi_request_wait
will segfault.

Signed-off-by: George Bosilca <[email protected]>
(cherry picked from commit 6802702)
Signed-off-by: Brian Barrett <[email protected]>
@jsquyres jsquyres merged commit 1569b0a into open-mpi:v4.1.x Nov 16, 2021
@bwbarrett bwbarrett deleted the backports/v4.1.x-alltoall-in-place branch November 18, 2021 20:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants