funzione MPI_Iscatter
Dispersione dei dati da un membro in tutti i membri di un gruppo in modo non bloccato. Questa funzione esegue l'inverso dell'operazione eseguita dalla funzione MPI_Igather.
Sintassi
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
);
Parametri
sendbuf [in, facoltativo]
Puntatore a un buffer che contiene i dati da inviare al 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.
sendcount [in]
Numero di elementi nel buffer di invio. Se sendcount è zero, la parte dei dati del messaggio è vuota.Questo parametro viene ignorato per tutti i processi non radice.
sendtype [in]
Tipo di dati di ogni elemento nel buffer.Questo parametro viene ignorato per tutti i processi non radice.
recvbuf [out, facoltativo]
Handle in 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 MPI degli elementi nel buffer di ricezione.radice [in]
Classificazione del processo di ricezione 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 sull'esito positivo. In caso contrario, il valore restituito è un codice di errore.
In Fortran il valore restituito viene archiviato nel parametro 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
Commenti
Una chiamata senza blocco avvia un'operazione di riduzione collettiva che deve essere completata in una chiamata di completamento separata. Dopo l'avvio, l'operazione può procedere indipendentemente da qualsiasi calcolo o da altre comunicazioni nei processi partecipanti. In questo modo, le operazioni di riduzione senza blocco possono attenuare possibili effetti di sincronizzazione delle operazioni di riduzione eseguendole in "background".
Tutte le chiamate di completamento (ad esempio , MPI_Wait) sono supportate per operazioni di riduzione non bloccabili.
Requisiti
Prodotto |
Microsoft MPI v7 |
Intestazione |
Mpi.h; Mpif.h |
Libreria |
Msmpi.lib |
DLL |
Msmpi.dll |