Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 |