dash-project / dash

DASH, the C++ Template Library for Distributed Data Structures with Support for Hierarchical Locality for HPC and Data-Driven Science
http://www.dash-project.org/
Other
155 stars 44 forks source link

Support for All to All Operations #569

Open rkowalewski opened 6 years ago

rkowalewski commented 6 years ago

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

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 commented 6 years ago

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.

devreal commented 6 years ago

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