Condividi tramite


funzione MPI_Iscatterv

Sintassi

int MPIAPI MPI_Iscatterv(
  _In_opt_  const void         *sendbuf,
  _In_opt_  const int          sendcounts[],
  _In_opt_  const int          displs[],
  _In_            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, facoltativo]
    Puntatore a un buffer contenente i dati da inviare dal processo radice.

    Questo parametro viene ignorato per tutti i processi non radice.

    Se il parametro comm fa riferimento a un intracommunicator, è possibile specificare un'opzione sul posto specificando MPI_IN_PLACE nel processo radice. I parametri recvcount e recvtype vengono ignorati. Il vettore a dispersione è ancora considerato contenere n segmenti, dove n è la dimensione del gruppo; il segmento che corrisponde al processo radice non viene spostato.

  • sendcounts[] [in, facoltativo]
    Numero di elementi da inviare a ogni processo. Se sendcounts[i] è zero, la parte dei dati del messaggio per il processo è vuota.

    Questo parametro viene ignorato per tutti i processi non radice.

  • displs[] [in, facoltativo]
    Percorsi dei dati da inviare a ogni processo di comunicatore. Ogni posizione nella matrice è relativa all'elemento corrispondente della matrice sendbuf .

    Nelle matrici di parametri sendbuf, sendcounts e displsl'nelemento di ogni matrice fa riferimento ai dati da inviare al processo ncommunicator.

    Questo parametro è significativo solo nel processo radice.

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

    Questo parametro viene ignorato per tutti i processi non radice.

  • recvbuf [out, facoltativo]
    Puntatore a un buffer contenente i dati ricevuti in 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 degli elementi nel buffer di ricezione.

  • root [in]
    Classificazione nel processo di invio 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_ISCATTERV(SENDBUF, SENDCOUNTS, DISPLS, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNTS(*), DISPLS(*), SENDTYPE, RECVCOUNT, 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_Scatterv

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome