Alltoall personalized communication is also known as a total exchange. This operation is used in a variety of parallel algorithms, such as the fast Fourier transform, matrix transpose, sample sort, and some parallel database join operations.
In mpi4py, there are three types of Alltoall collective communication:
- comm.Alltoall(sendbuf, recvbuf): The Alltoall scatter/gather sends data from all-to-all processes in a group.
- comm.Alltoallv(sendbuf, recvbuf): The Alltoall scatter/gather vector sends data from all-to-all processes in a group, providing a different amount of data and displacements.
- comm.Alltoallw(sendbuf, recvbuf): Generalized Alltoall communication allows different counts, displacements, and datatypes for each partner.