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 |