Condividi tramite


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

Vedi anche

Funzioni collettive MPI

MPI_Reduce

MPI_Datatype

MPI_Op