Litcius/Paper detail

Optimizing the Bruck Algorithm for Non-uniform All-to-all Communication

Ke Fan, Thomas Gilray, Valerio Pascucci, Xuan Huang, Kristopher Micinski, Sidharth Kumar

202220 citationsDOI

Abstract

In MPI, collective routines MPI_Alltoall and MPI_Alltoallv play an important role in facilitating all-to-all inter-process data exchange. MPI_Alltoallv is a generalization of MPI_Alltoall, supporting the exchange of non-uniform distributions of data. Popular implementations of MPI, such as MPICH and OpenMPI, implement MPI_Alltoall using a combination of techniques such as the Spread-out algorithm and the Bruck algorithm. Spread-out has a linear complexity in P, compared to Bruck's logarithmic complexity (P: process count); a selection between these two techniques is made at runtime based on the data block size. However, MPI_Alltoallv is typically implemented using only variants of the spread-out algorithm, and therefore misses out on the performance benefits that the log-time Bruck algorithm offers (especially for smaller data loads).

Topics & Concepts

Computer scienceLogarithmMessage Passing InterfaceGeneralizationParallel computingImplementationBlock (permutation group theory)Process (computing)AlgorithmMessage passingTheoretical computer scienceOperating systemMathematicsProgramming languageMathematical analysisGeometryParallel Computing and Optimization TechniquesDistributed and Parallel Computing SystemsDistributed systems and fault tolerance
Optimizing the Bruck Algorithm for Non-uniform All-to-all Communication | Litcius