MPI_Iallgather, funkcja
Zbiera dane ze wszystkich członków grupy i wysyła dane do wszystkich członków grupy w sposób nieblokowy.
Składnia
int MPIAPI MPI_Iallgather(
_In_opt_ const void *sendbuf,
_In_ int sendcount,
_In_ MPI_Datatype sendtype,
_Out_opt_ void *recvbuf,
_In_ int recvcount,
_In_ MPI_Datatype recvtype,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parametry
sendbuf [in, opcjonalnie]
Wskaźnik do danych, które mają być wysyłane do wszystkich procesów w grupie. Liczba i typ danych elementów w buforze są określone w parametrach sendcount i sendtype . Każdy element w buforze odpowiada procesowi w grupie.Jeśli parametr comm odwołuje się do wewnątrzkomunikatora, można określić opcję w miejscu, określając MPI_IN_PLACE we wszystkich procesach. Parametry sendcount i sendtype są ignorowane. Każdy proces wprowadza dane w odpowiadającym mu elemecie buforu odbioru. Nproces wysyła dane do nelement buforu odbioru.
sendcount [in]
Liczba elementów w buforze określonym w parametrze sendbuf . Jeśli parametr sendcount ma wartość zero, część danych wiadomości jest pusta.sendtype [in]
Typ danych MPI elementów w buforze wysyłania.recvbuf [out, optional]
Wskaźnik do buforu zawierającego dane odbierane z każdego procesu. Liczba i typ danych elementów w buforze są określone w parametrach recvcount i recvtype .recvcount [in]
Liczba elementów w buforze odbioru. Jeśli liczba jest równa zero, część danych komunikatu jest pusta.recvtype [in]
Typ danych MPI elementów w buforze odbioru.comm [in]
Uchwyt komunikatora MPI_Comm .request [out]
Uchwyt MPI_Request reprezentujący operację komunikacji.
Wartość zwracana
Zwraca MPI_SUCCESS powodzenia. W przeciwnym razie wartość zwracana jest kodem błędu.
W fortran wartość zwracana jest przechowywana w parametrze IERROR .
Fortran
MPI_IALLGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM, REQUEST, IERROR
Uwagi
Wywołanie nieblokacyjne inicjuje operację redukcji zbiorowej, która musi zostać ukończona w osobnym wywołaniu ukończenia. Po zainicjowaniu operacja może przebiegać niezależnie od obliczeń lub innej komunikacji w uczestniczących procesach. W ten sposób operacje redukcji nieblokujące mogą ograniczyć możliwe synchronizowanie skutków operacji redukcji, uruchamiając je w "tle".
Wszystkie wywołania ukończenia (np. MPI_Wait) są obsługiwane w przypadku operacji redukcji nieblokujących.
Wymagania
Produkt |
Microsoft MPI v7 |
Nagłówek |
Mpi.h; Mpif.h |
Biblioteka |
Msmpi.lib |
DLL |
Msmpi.dll |