Udostępnij za pośrednictwem


MPI_Iscatterv, funkcja

Składnia

int MPIAPI MPI_Iscatterv(
  _In_opt_  const void         *sendbuf,
  _In_opt_  const int          sendcounts[],
  _In_opt_  const int          displs[],
  _In_            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, opcjonalnie]
    Wskaźnik do buforu zawierającego dane, które mają być wysyłane przez proces główny.

    Ten parametr jest ignorowany dla wszystkich procesów innych niż root.

    Jeśli parametr comm odwołuje się do wewnątrzpolecenia, można określić opcję w miejscu, określając MPI_IN_PLACE w procesie głównym. Parametry recvcount i recvtype są ignorowane. Wektor punktowy jest nadal uznawany za zawierający n segmentów, gdzie n jest rozmiarem grupy; segment odpowiadający procesowi głównemu nie jest przenoszony.

  • sendcounts[] [in, opcjonalnie]
    Liczba elementów do wysłania do każdego procesu. Jeśli parametr sendcounts[i] jest zerowy, część danych komunikatu dla tego procesu jest pusta.

    Ten parametr jest ignorowany dla wszystkich procesów innych niż root.

  • displs[] [ in, optional]
    Lokalizacje danych do wysłania do każdego procesu komunikatora. Każda lokalizacja w tablicy jest względna względem odpowiedniego elementu tablicy sendbuf .

    W tablicach sendbuf, sendcounts i displs parametrów nelement każdej tablicy odnosi się do danych, które mają być wysyłane do nprocesu komunikatora.

    Ten parametr jest znaczący tylko w procesie głównym.

  • sendtype [in]
    Typ danych każdego elementu w buforze.

    Ten parametr jest ignorowany dla wszystkich procesów innych niż root.

  • recvbuf [out, opcjonalnie]
    Wskaźnik do buforu zawierającego dane odbierane w każdym procesie. Liczba i typ danych elementów w buforze są określone w parametrach recvcount i recvtype .

  • recvcount [in]
    Liczba elementów w buforze odbierania. Jeśli liczba jest równa zero, część danych komunikatu jest pusta.

  • recvtype [in]
    Typ danych elementów w buforze odbierania.

  • root [in]
    Ranga w procesie wysyłania 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_ISCATTERV(SENDBUF, SENDCOUNTS, DISPLS, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNTS(*), DISPLS(*), SENDTYPE, RECVCOUNT, 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_Scatterv

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome