funktionen MPI_Igather

Samlar in data från alla medlemmar i en grupp till en medlem på ett icke-blockerande sätt.

Syntax

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
);

Parametrar

  • sendbuf [in]
    Pekaren till en buffert som innehåller de data som ska skickas till roten. Bufferten består av efterföljande sendcount-element i MPI_Datatype som anges av sendtype-handtaget . Meddelandelängden anges i termer av antal element, inte antal byte.

  • sendcount
    Antalet sendtype-element i sendbuf. Om värdet är noll är datadelen av meddelandet tom.

  • sendtype
    Det MPI_Datatype hantera som representerar datatypen för varje element i sendbuf.

  • recvbuf [ut, valfritt]
    Pekaren till en buffert som innehåller de data som tas emot från varje process i roten, inklusive data som skickas av rotprocessen (endast betydande vid roten). Mottagarbuffertens recvbuf ignoreras för alla icke-rotprocesser. I rotprocessen består recvbuf av återräkna efterföljande element i MPI_Datatype som anges av referensen för recvtype . Meddelandelängden anges i termer av antal element, inte antal byte.

  • recvcount [in]
    Antalet recvtype-element i recvbuf. Om värdet är noll är datadelen av meddelandet tom (endast betydande vid roten).

  • recvtype [in]
    Det MPI_Datatype hantera som representerar datatypen för varje element i recvbuf (endast betydande vid rot).

  • root [in]
    Rangordningen för den mottagande processen inom MPI_Commkommatecken.

  • comm [in]
    MPI_Comm communicator-handtaget.

  • begäran [ut]
    Den MPI_Request hantera som representerar kommunikationsåtgärden.

Returvärde

Returnerar MPI_SUCCESS vid lyckat resultat. Annars är returvärdet en felkod.

I Fortran lagras returvärdet i parametern 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

Kommentarer

Ett icke-blockerande anrop initierar en kollektiv insamlingsåtgärd som måste slutföras i ett separat slutförandeanrop. När åtgärden har initierats kan den fortsätta oberoende av beräkningen eller annan kommunikation i deltagande processer. På så sätt kan icke-blockerande insamlingsåtgärder minimera möjliga synkroniseringseffekter av insamlingsåtgärder genom att köra dem i "bakgrunden".

Alla slutförandeanrop (t.ex. MPI_Wait) stöds för icke-blockerande insamlingsåtgärder.

Krav

Produkt

Microsoft MPI v6

Huvud

Mpi.h; Mpif.h

Bibliotek

Msmpi.lib

DLL

Msmpi.dll

Se även

Kollektiva MPI-funktioner

MPI_Datatype

MPI_Gather

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome