Condividi tramite


funzione MPI_Igatherv

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

Sintassi

int MPIAPI MPI_Igatherv(
  _In_opt_  const void         *sendbuf,
  _In_            int          sendcount,
  _In_            MPI_Datatype sendtype,
  _Out_opt_       void         *recvbuf,
  _In_opt_  const int          recvcounts[],
  _In_opt_  const int          displs[],
  _In_            MPI_Datatype recvtype,
  _In_            int          root,
  _In_            MPI_Comm     comm,
  _Out_           MPI_Request  *request
);

Parametri

  • sendbuf [in, facoltativo]
    Handle in un buffer contenente i dati da inviare al processo radice.

    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. Si presuppone che i dati inviati dal processo radice siano nella posizione corretta nel buffer di ricezione.

  • sendcount [in]
    Numero di elementi nel buffer di invio. Se sendcount è zero, la parte dei dati del messaggio è vuota.

  • sendtype [in]
    Tipo di dati di ogni elemento nel buffer.

  • recvbuf [out, facoltativo]
    Handle in un buffer nel processo radice che contiene i dati ricevuti da ogni processo, inclusi i dati inviati dal processo radice. Questo parametro è significativo solo nel processo radice. Il parametro recvbuf viene ignorato per tutti i processi non radice.

  • recvcounts[] [in, facoltativo]
    Numero di elementi ricevuti da ogni processo. Ogni elemento nella matrice corrisponde alla classificazione del processo di invio. Se il conteggio è zero, la parte dei dati del messaggio è vuota. Questo parametro è significativo solo nel processo radice.

  • displs[] [in, facoltativo]
    Posizione, relativa al parametro recvbuf , dei dati di ogni processo di comunicatore. I dati ricevuti dal processo j vengono inseriti nel buffer di ricezione degli elementi di offset del processo radice displs[j] dal puntatore sendbuf .

    Nelle matrici di parametri recvbuf, recvcounts e displs, l'n elemento th di ogni matrice fa riferimento ai dati ricevuti dal nprocesso communicator.

    Questo parametro è significativo solo nel processo radice.

  • recvtype [in]
    Tipo di dati di ogni elemento nel buffer. Questo parametro è significativo solo nel processo radice.

  • root [in]
    Classificazione del processo di ricezione all'interno del comunicatore specificato.

  • 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_IGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS, DISPLS, RECVTYPE,
    ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), RECVTYPE, ROOT, 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_Datatype

MPI_Gatherv

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome