Nazwa:
MPI_Alltoall - Wysyła dane od każdego do każdego procesu. Wszystkie procesy wykonują operację scatter (rozpraszania). Realizowane jest też przemieszczenie.
Wejściowe parametry:
senfbuf - adres w pamięci początku bufora wysyłania (zleży od wyboru);
sendcounts - tablica typu integer o długości równej ilości procesów w grupie zawierająca numery elementów do wysłania do każdego procesu;
sdispls - tablica typu integer (długość zależna od liczby procesów w grupie). Kolejny j-ty element określa przemieszczenie (względne do sendbuf z którego pobieramy wychodzącą daną przeznaczona dla procesu j ;
sendtype - typ danych elementów bufora wysyłania (handle);
recvcounts - tablica typu integer o długości równej ilości procesów w grupie zawierająca maksymalną ilość elementów, które mogą być odebrane od każdego z procesów;
rdispls - tablica typu integer (długość zależna od liczby procesów w grupie). Kolejny i-ty element określa przemieszczenie (względne do recvbuf) które należy uwzględnić przy umieszczaniu przychodzącej danej z procesu i;
recvtype - typ danych w buforze odbioru (handle);
comm - komunikator (handle);
Wyjściowe parametry:
recvbuf - adres w pamięci początku bufora odbioru (zależnie od wyboru);
Użycie:
#include "mpi.h"
int MPI_Alltoallv ( sendbuf, sendcnts, sdispls, sendtype, recvbuf, recvcnts, rdispls, recvtype, comm )
void *sendbuf;
int *sendcnts;
int *sdispls;
MPI_Datatype sendtype;
void *recvbuf;
int *recvcnts;
int *rdispls;
MPI_Datatype recvtype;
MPI_Comm comm;