funzione MPI_Allreduce
Combina i valori di tutti i processi e distribuisce di nuovo il risultato a tutti i processi.
Sintassi
int MPIAPI MPI_Allreduce(
_In_opt_ const void *sendbuf,
_Out_opt_ void *recvbuf,
_In_ int count,
_In_ MPI_Datatype datatype,
_In_ MPI_Op op,
_In_ MPI_Comm comm
);
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 count e datatype.Se il parametro comm fa riferimento a un intracommunicator, è possibile specificare un'opzione sul posto specificando MPI_IN_PLACE in tutti i processi. In questo caso, i dati di input vengono acquisiti in ogni processo dal buffer di ricezione, in cui verranno sostituiti dai dati di output.
recvbuf [out, facoltativo]
Puntatore a un buffer per ricevere il risultato dell'operazione di riduzione. Questo parametro è significativo solo nel processo radice.count [in]
Numero di elementi da inviare da questo processo.tipo di dati [in]
MPI_Datatype di ogni elemento nel buffer. Questo parametro deve essere compatibile con l'operazione specificata nel parametro op .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 MPI_Op.comm [in]
Handle del comunicatore MPI_Comm .
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_ALLREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER COUNT, DATATYPE, OP, COMM, IERROR
Commenti
Se comm è un intercomnicator, il risultato della riduzione dei dati forniti dai processi nel gruppo A viene archiviato in ogni processo nel gruppo B e viceversa. Entrambi i gruppi devono fornire argomenti count e datatype che specificano la stessa firma del tipo.
Tutte le chiamate di completamento (ad esempio , MPI_Wait) sono supportate per le operazioni di riduzione non bloccabili.
Requisiti
Prodotto |
Pacchetto ridistribuibile DI HPC Pack 2012 MS-MPI, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package o utilità client HPC Pack 2008 |
Intestazione |
Mpi.h; Mpif.h |
Libreria |
Msmpi.lib |
DLL |
Msmpi.dll |