MPI_Igatherv, funkcja
Zbiera dane zmiennych ze wszystkich członków grupy do jednego członka w sposób nieblokowania.
Składnia
int MPIAPI MPI_Igatherv(
_In_opt_ const void *sendbuf,
_In_ int sendcount,
_In_ MPI_Datatype sendtype,
_Out_opt_ void *recvbuf,
_In_opt_ const int recvcounts[],
_In_opt_ const int displs[],
_In_ MPI_Datatype recvtype,
_In_ int root,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parametry
sendbuf [in, opcjonalnie]
Dojście do buforu zawierającego dane do wysłania do procesu głównego.Jeśli parametr comm odwołuje się do wewnątrzpolecenia, 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 odpowiednim elemecie buforu odbierania. Nproces wysyła dane do nelementu buforu odbierania. Zakłada się, że dane wysyłane przez proces główny będą znajdować się w prawidłowym miejscu w buforze odbierania.
sendcount [in]
Liczba elementów w buforze wysyłania. Jeśli pole sendcount ma wartość zero, część danych komunikatu jest pusta.sendtype [in]
Typ danych każdego elementu w buforze.recvbuf [out, opcjonalnie]
Dojście do buforu w procesie głównym, który zawiera dane odbierane z każdego procesu, w tym dane wysyłane przez proces główny. Ten parametr jest znaczący tylko w procesie głównym. Parametr recvbuf jest ignorowany dla wszystkich procesów innych niż root.recvcounts[] [in, optional]
Liczba elementów odbieranych z każdego procesu. Każdy element w tablicy odpowiada rangi procesu wysyłania. Jeśli liczba jest równa zero, część danych komunikatu jest pusta. Ten parametr jest znaczący tylko w procesie głównym.displs[] [ in, optional]
Lokalizacja względem parametru recvbuf danych z każdego procesu komunikatora. Dane odbierane z procesu j są umieszczane w buforze odbierania elementów przesunięcia procesu głównego [j] z wskaźnika sendbuf .W recvbuf, recvcounts i displs tablic parametrów nelementu każdej tablicy odnosi się do danych odbieranych z nprocesu komunikatora.
Ten parametr jest znaczący tylko w procesie głównym.
recvtype [in]
Typ danych każdego elementu w buforze. Ten parametr jest znaczący tylko w procesie głównym.root [in]
Ranga procesu odbierania w określonym komunikatorze.comm [in]
Uchwyt komunikatora MPI_Comm .żądanie [out]
Uchwyt MPI_Request reprezentujący operację komunikacji.
Wartość zwracana
Zwraca MPI_SUCCESS po powodzeniu. W przeciwnym razie zwracana wartość jest kodem błędu.
W fortran wartość zwracana jest przechowywana w parametrze IERROR .
Fortran
MPI_IGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS, DISPLS, RECVTYPE,
ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), RECVTYPE, ROOT, 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 wszelkich obliczeń lub innej komunikacji w uczestniczących procesach. W ten sposób nieblokacyjne operacje redukcji mogą ograniczyć możliwe synchronizowanie skutków operacji redukcji, uruchamiając je w "tle".
Wszystkie wywołania uzupełniania (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 |