funzione MPI_Iscatterv
Sintassi
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
);
Parametri
sendbuf [in, facoltativo]
Puntatore a un buffer contenente i dati da inviare dal processo radice.Questo parametro viene ignorato per tutti i processi non radice.
Se il parametro comm fa riferimento a un intracommunicator, è possibile specificare un'opzione sul posto specificando MPI_IN_PLACE nel processo radice. I parametri recvcount e recvtype vengono ignorati. Il vettore a dispersione è ancora considerato contenere n segmenti, dove n è la dimensione del gruppo; il segmento che corrisponde al processo radice non viene spostato.
sendcounts[] [in, facoltativo]
Numero di elementi da inviare a ogni processo. Se sendcounts[i] è zero, la parte dei dati del messaggio per il processo è vuota.Questo parametro viene ignorato per tutti i processi non radice.
displs[] [in, facoltativo]
Percorsi dei dati da inviare a ogni processo di comunicatore. Ogni posizione nella matrice è relativa all'elemento corrispondente della matrice sendbuf .Nelle matrici di parametri sendbuf, sendcounts e displsl'nelemento di ogni matrice fa riferimento ai dati da inviare al processo ncommunicator.
Questo parametro è significativo solo nel processo radice.
sendtype [in]
Tipo di dati di ogni elemento nel buffer.Questo parametro viene ignorato per tutti i processi non radice.
recvbuf [out, facoltativo]
Puntatore a un buffer contenente i dati ricevuti in ogni processo. Il numero e il tipo di dati degli elementi nel buffer vengono specificati nei parametri recvcount e recvtype .recvcount [in]
Numero di elementi nel buffer di ricezione. Se il conteggio è zero, la parte dei dati del messaggio è vuota.recvtype [in]
Tipo di dati degli elementi nel buffer di ricezione.root [in]
Classificazione nel processo di invio all'interno del comunicatore specificato.comm [in]
Handle del comunicatore MPI_Comm .richiesta [out]
Handle MPI_Request che rappresenta l'operazione di comunicazione.
Valore restituito
Restituisce MPI_SUCCESS in caso di esito positivo. In caso contrario, il valore restituito è un codice di errore.
In Fortran il valore restituito viene archiviato nel parametro 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
Commenti
Una chiamata non bloccante avvia un'operazione di riduzione collettiva che deve essere completata in una chiamata di completamento separata. Dopo l'avvio, l'operazione può progredire indipendentemente da qualsiasi calcolo o altra comunicazione nei processi partecipanti. In questo modo, le operazioni di riduzione non bloccanti possono ridurre i possibili effetti di sincronizzazione delle operazioni di riduzione eseguendole in "background".
Tutte le chiamate di completamento (ad esempio , MPI_Wait) sono supportate per le operazioni di riduzione non bloccabili.
Requisiti
Prodotto |
Microsoft MPI v7 |
Intestazione |
Mpi.h; Mpif.h |
Libreria |
Msmpi.lib |
DLL |
Msmpi.dll |