Udostępnij za pośrednictwem


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

Zobacz też

Funkcje zbiorowe MPI

MPI_Datatype

MPI_Gatherv

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome