Condividi tramite


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

Vedi anche

Funzioni collettive MPI

MPI_Gather

MPI_Datatype

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome