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 |