Udostępnij za pośrednictwem


MPI_Iscatter, funkcja

Rozprasza dane z jednego elementu członkowskiego we wszystkich członkach grupy w sposób nieblokcyjny. Ta funkcja wykonuje odwrotność operacji wykonywanej przez funkcję MPI_Igather.

Składnia

int MPIAPI MPI_Iscatter(
  _In_opt_  const void         *sendbuf,
  _In_             int         sendcount,
  _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 do procesu głównego.

    Ten parametr jest ignorowany dla wszystkich procesów innych niż główne.

    Jeśli parametr comm odwołuje się do wewnątrzkomunikatora, możesz 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.

  • sendcount [in]
    Liczba elementów w buforze wysyłania. Jeśli parametr sendcount ma wartość zero, część danych wiadomości jest pusta.

    Ten parametr jest ignorowany dla wszystkich procesów innych niż główne.

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

    Ten parametr jest ignorowany dla wszystkich procesów innych niż główne.

  • recvbuf [out, optional]
    Dojście 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 odbioru. Jeśli liczba jest równa zero, część danych komunikatu jest pusta.

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

  • root [in]
    Ranga procesu odbierania w ramach określonego komunikatora.

  • 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_ISCATTER(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 operację redukcji zbiorowej, 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 redukcji nieblokujące mogą ograniczyć możliwe synchronizowanie skutków operacji redukcji, uruchamiając je w "tle".

Wszystkie wywołania ukończenia (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_Scatter

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome