MPI_Iallreduce, funkcja
Łączy wartości ze wszystkich procesów i dystrybuuje wynik z powrotem do wszystkich procesów w sposób nieblokowy.
Składnia
int MPIAPI MPI_Iallreduce(
_In_opt_ const void *sendbuf,
_Out_opt_ void *recvbuf,
_In_ int count,
_In_ MPI_Datatype datatype,
_In_ MPI_Op op,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parametry
sendbuf [in, opcjonalnie]
Wskaźnik do danych, które mają być wysyłane do wszystkich procesów w grupie. Liczba i typ danych elementów w buforze są określone w parametrach count i datatype .Jeśli parametr comm odwołuje się do wewnątrzkomunikatora, można określić opcję w miejscu, określając MPI_IN_PLACE we wszystkich procesach. W takim przypadku dane wejściowe są pobierane w każdym procesie z buforu odbioru, gdzie zostaną zastąpione danymi wyjściowymi.
recvbuf [out, optional]
Wskaźnik do buforu w celu otrzymania wyniku operacji redukcji.count [in]
Liczba elementów do wysłania z tego procesu.datatype [in]
Typ danych każdego elementu w buforze. Ten parametr musi być zgodny z operacją określoną w parametrze op .op [in]
Globalna operacja redukcji do wykonania. Uchwyt może wskazywać wbudowaną lub zdefiniowaną przez aplikację operację. Aby uzyskać listę wstępnie zdefiniowanych operacji, zobacz MPI_Op.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_IALLREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER COUNT, DATATYPE, OP, 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 |