funzione MPI_Ireduce
Esegue un'operazione di riduzione globale (ad esempio somma, massimo o logico e) in tutti i membri di un gruppo in modo non bloccando.
Sintassi
int MPIAPI MPI_Ireduce(
_In_ void *sendbuf,
_Out_opt_ void *recvbuf,
_In_ int count,
_In_ MPI_Datatype datatype,
_In_ MPI_Op op,
_In_ int root,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parametri
sendbuf [in]
Puntatore a un buffer contenente i dati di questa classificazione da usare nella riduzione. Il buffer è costituito daconteggio elementi successivi delMPI_Datatype indicato dall'handle tipo di dati. La lunghezza del messaggio viene specificata in termini di numero di elementi, non in numero di byte. recvbuf [out, facoltativo]
Puntatore a un buffer per ricevere il risultato dell'operazione di riduzione. Questo parametro è significativo solo nel processo radice.conteggio [in]
Numero di elementi da inviare da questo processo.tipo di dati [in]
Handle MPI_Datatype che rappresenta il tipo di dati di ogni elemento in sendbuf.op [in]
Handle MPI_Op che indica l'operazione di riduzione globale da eseguire. L'handle può indicare un'operazione predefinita o definita dall'applicazione. Per un elenco delle operazioni predefinite, vedere l'argomento MPI_Op.radice [in]
Classificazione del processo di ricezione all'interno del MPI_Commcomm.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
Fortran
MPI_IREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER COUNT, DATATYPE, OP, ROOT, COMM, REQUEST, IERROR
Osservazioni
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.
Fabbisogno
Prodotto |
Microsoft MPI v6 |
Intestazione |
Mpi.h; Mpif.h |
Biblioteca |
Msmpi.lib |
DLL |
Msmpi.dll |