dash icon indicating copy to clipboard operation
dash copied to clipboard

Support for All to All Operations

Open rkowalewski opened this issue 7 years ago • 2 comments

DART should provide operations to support both blocking and nonblocking all-to-all operations.

  • blocking: MPI_Alltoall and MPI_Alltoallv
  • nonblocking: MPI_Ialltoall and MPI_Ialltoallv

Currently the only way to transpose an (N-)Array is to apply one-sided operations. This is, of course, not scalable with a large number of processes where logarithmic complexity is imperative, compared to linear complexity in the "naive" transpose.

rkowalewski avatar Jul 02 '18 10:07 rkowalewski

An interesting use case for dart_Ialltoallv is dash::sort where all processors have to distribute local data to the corresponding target processors. This can be overlapped with local copy operations.

rkowalewski avatar Jul 02 '18 11:07 rkowalewski

I think there was once of student from TUM who had a dart_alltoall implementation. I will look into that

devreal avatar Jul 02 '18 11:07 devreal