Condividi tramite


funzione MPI_Igather

Raccoglie i dati da tutti i membri di un gruppo a un membro in modo non bloccanti.

Sintassi

int WINAPI MPI_Igather(
  _In_      void         *sendbuf,
            int          sendcount,
            MPI_Datatype sendtype,
  _Out_opt_ void         *recvbuf,
  _In_      int          recvcount,
  _In_      MPI_Datatype recvtype,
  _In_      int          root,
  _In_      MPI_Comm     comm,
  _Out_     MPI_Request  *request
);

Parametri

  • sendbuf [in]
    Puntatore a un buffer contenente i dati da inviare alla radice. Il buffer è costituito da elementi successivi sendcount del MPI_Datatype indicato dall'handle sendtype . La lunghezza del messaggio viene specificata in termini di numero di elementi, non in numero di byte.

  • sendcount
    Numero di elementi sendtype in sendbuf. Se il valore è zero, la parte dei dati del messaggio è vuota.

  • sendtype
    Handle MPI_Datatype che rappresenta il tipo di dati di ogni elemento in sendbuf.

  • recvbuf [out, facoltativo]
    Puntatore a un buffer contenente i dati ricevuti da ogni processo nella radice, inclusi i dati inviati dal processo radice (significativi solo nella radice). Il recvbuf del buffer di ricezione viene ignorato per tutti i processi non radice. Nel processo radice recvbuf è costituito da elementi successivi recvcount dei MPI_Datatype indicati dall'handle recvtype . La lunghezza del messaggio viene specificata in termini di numero di elementi, non in numero di byte.

  • recvcount [in]
    Numero di elementi recvtype in recvbuf. Se il valore è zero, la parte dei dati del messaggio è vuota (significativa solo nella radice).

  • recvtype [in]
    Handle MPI_Datatype che rappresenta il tipo di dati di ogni elemento in recvbuf (significativo solo nella radice).

  • root [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 IERROR .

Fortran

    MPI_IGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE,
    ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR

Commenti

Una chiamata non bloccante avvia un'operazione di raccolta 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 raccolta non bloccanti possono ridurre i possibili effetti di sincronizzazione delle operazioni di raccolta eseguendole in "background".

Tutte le chiamate di completamento (ad esempio , MPI_Wait) sono supportate per le operazioni di raccolta non bloccabili.

Requisiti

Prodotto

Microsoft MPI v6

Intestazione

Mpi.h; Mpif.h

Libreria

Msmpi.lib

DLL

Msmpi.dll

Vedi anche

Funzioni collettive MPI

MPI_Datatype

MPI_Gather

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome