MPI_Igather, funkcja
Zbiera dane ze wszystkich członków grupy do jednego członka w sposób nieblokowy.
Składnia
int WINAPI MPI_Igather(
_In_ void *sendbuf,
int sendcount,
MPI_Datatype sendtype,
_Out_opt_ void *recvbuf,
_In_ int recvcount,
_In_ MPI_Datatype recvtype,
_In_ int root,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parametry
sendbuf [in]
Wskaźnik do buforu zawierającego dane do wysłania do katalogu głównego. Bufor składa się z kolejnych elementów MPI_Datatype wskazywanych przez uchwyt sendtype. Długość komunikatu jest określana pod względem liczby elementów, a nie liczby bajtów.sendcount
Liczba elementów sendtype w sendbuf. Jeśli wartość jest równa zero, część danych komunikatu jest pusta.sendtype
Uchwyt MPI_Datatype reprezentujący typ danych każdego elementu w sendbuf.recvbuf [out, optional]
Wskaźnik do buforu zawierającego dane odebrane z każdego procesu w katalogu głównym, w tym dane wysyłane przez proces główny (istotne tylko w katalogu głównym). Recvbuf buforu odbierania jest ignorowany dla wszystkich procesów innych niż główne. W procesie głównym recvbuf składa się z recvcount kolejnych elementów MPI_Datatype wskazywanych przez uchwyt recvtype . Długość komunikatu jest określana pod względem liczby elementów, a nie liczby bajtów.recvcount [in]
Liczba elementów recvtype w recvbuf. Jeśli wartość jest równa zero, część danych komunikatu jest pusta (znacząca tylko w katalogu głównym).recvtype [in]
Uchwyt MPI_Datatype reprezentujący typ danych każdego elementu w recvbuf (znaczący tylko w katalogu głównym).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_IGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE,
ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR
Uwagi
Wywołanie nieblokacyjne inicjuje zbiorczą operację zbierania, 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 zbierania nieblokujące mogą ograniczyć możliwe zsynchronizowanie efektów operacji zbierania, uruchamiając je w "tle".
Wszystkie wywołania ukończenia (np. MPI_Wait) są obsługiwane w przypadku operacji zbierania nieblokujących.
Wymagania
Produkt |
Microsoft MPI v6 |
Nagłówek |
Mpi.h; Mpif.h |
Biblioteka |
Msmpi.lib |
DLL |
Msmpi.dll |