funzione MPI_Iallgather
Raccoglie i dati da tutti i membri di un gruppo e invia i dati a tutti i membri del gruppo in modo non bloccanti.
Sintassi
int MPIAPI MPI_Iallgather(
_In_opt_ const void *sendbuf,
_In_ int sendcount,
_In_ MPI_Datatype sendtype,
_Out_opt_ void *recvbuf,
_In_ int recvcount,
_In_ MPI_Datatype recvtype,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parametri
sendbuf [in, facoltativo]
Puntatore ai dati da inviare a tutti i processi del gruppo. Il numero e il tipo di dati degli elementi nel buffer vengono specificati nei parametri sendcount e sendtype . Ogni elemento nel buffer corrisponde a un processo nel gruppo.Se il parametro comm fa riferimento a un intracommunicator, è possibile specificare un'opzione sul posto specificando MPI_IN_PLACE in tutti i processi. I parametri sendcount e sendtype vengono ignorati. Ogni processo immette i dati nell'elemento del buffer di ricezione corrispondente. L'nprocesso invia i dati all'nelemento del buffer di ricezione.
sendcount [in]
Numero di elementi nel buffer specificato nel parametro sendbuf . Se sendcount è zero, la parte dei dati del messaggio è vuota.sendtype [in]
Tipo di dati MPI degli elementi nel buffer di invio.recvbuf [out, facoltativo]
Puntatore a un buffer contenente i dati ricevuti da 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.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_IALLGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, 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 |