Udostępnij za pośrednictwem


MPI_Ireduce, funkcja

Wykonuje globalną operację redukcji (na przykład sumę, maksymalną lub logiczną) we wszystkich członkach grupy w sposób nieblokcyjny.

Składnia

int MPIAPI MPI_Ireduce(
  _In_      void         *sendbuf,
  _Out_opt_ void         *recvbuf,
  _In_      int          count,
  _In_      MPI_Datatype datatype,
  _In_      MPI_Op       op,
  _In_      int          root,
  _In_      MPI_Comm     comm,
  _Out_     MPI_Request  *request
);

Parametry

  • sendbuf [in]
    Wskaźnik do buforu zawierającego dane z tej rangi do użycia w redukcji. Bufor składa się z liczby kolejnych elementów MPI_Datatype wskazywanych przez dojście typu danych. Długość komunikatu jest określana pod względem liczby elementów, a nie liczby bajtów.

  • recvbuf [out, optional]
    Wskaźnik do buforu w celu otrzymania wyniku operacji redukcji. Ten parametr jest znaczący tylko w procesie głównym.

  • liczba [in]
    Liczba elementów do wysłania z tego procesu.

  • typ danych [in]
    Dojście MPI_Datatype reprezentujące typ danych każdego elementu w sendbuf.

  • op [in]
    Uchwyt MPI_Op wskazujący operację redukcji globalnej do wykonania. Uchwyt może wskazywać wbudowaną lub zdefiniowaną przez aplikację operację. Aby uzyskać listę wstępnie zdefiniowanych operacji, zobacz temat MPI_Op.

  • katalogu głównego [in]
    Ranga procesu odbierania w MPI_Commcomm.

  • comm [in]
    Uchwyt komunikatora MPI_Comm.

  • żądanie [out]
    Dojście MPI_Request reprezentujące 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_IREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, ROOT, COMM, REQUEST, IERROR) 
        <type> SENDBUF(*), RECVBUF(*) 
        INTEGER COUNT, DATATYPE, OP, ROOT, COMM, REQUEST, IERROR

Uwagi

Wywołanie nieblokacyjne inicjuje zbiorczą operację redukcji, 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 nieblokacyjne operacje redukcji 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 v6

Nagłówek

Mpi.h; Mpif.h

Biblioteka

Msmpi.lib

DLL

Msmpi.dll

Zobacz też

funkcji zbiorczych MPI

MPI_Datatype

MPI_Op

MPI_Reduce

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome