Freigeben über


MPI_Igather-Funktion

Sammelt Daten von allen Mitgliedern einer Gruppe auf nicht blockierende Weise für ein Mitglied.

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

Parameter

  • sendbuf [in]
    Der Zeiger auf einen Puffer, der die Daten enthält, die an den Stamm gesendet werden sollen. Der Puffer besteht aus aufeinander folgenden sendcount-Elementen der MPI_Datatype , die durch das sendtype-Handle angegeben werden. Die Nachrichtenlänge wird als Anzahl von Elementen und nicht als Anzahl von Bytes angegeben.

  • sendcount
    Die Anzahl der sendtype-Elemente in sendbuf. Wenn der Wert null ist, ist der Datenteil der Nachricht leer.

  • sendtype
    Das MPI_Datatype Handle, das den Datentyp jedes Elements in sendbuf darstellt.

  • recvbuf [out, optional]
    Der Zeiger auf einen Puffer mit den Daten, die von jedem Prozess im Stamm empfangen werden, einschließlich der daten, die vom Stammprozess gesendet werden (nur im Stamm). Der Empfangspuffer recvbuf wird für alle Nicht-Stammprozesse ignoriert. Im Stammprozess besteht recvbuf aus recvcount aufeinanderfolgenden Elementen der MPI_Datatype , die durch das Recvtype-Handle angegeben werden. Die Nachrichtenlänge wird als Anzahl von Elementen und nicht als Anzahl von Bytes angegeben.

  • recvcount [in]
    Die Anzahl der recvtype-Elemente in recvbuf. Wenn der Wert 0 (null) ist, ist der Datenteil der Nachricht leer (nur im Stamm).

  • recvtype [in]
    Das MPI_Datatype Handle, das den Datentyp jedes Elements in recvbuf darstellt (nur im Stamm signifikant).

  • root [in]
    Der Rang des empfangenden Prozesses innerhalb des MPI_Commcomm.

  • comm [in]
    Das MPI_Comm Communicatorhandle.

  • Request [out]
    Das MPI_Request Handle, das den Kommunikationsvorgang darstellt.

Rückgabewert

Gibt MPI_SUCCESS nach Erfolg zurück. Andernfalls ist der Rückgabewert ein Fehlercode.

In Fortran wird der Rückgabewert im IERROR-Parameter gespeichert.

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

Hinweise

Bei einem nicht blockierenden Aufruf wird ein Sammelvorgang initiiert, der in einem separaten Abschlussaufruf abgeschlossen werden muss. Nach der Einleitung kann der Vorgang unabhängig von berechnungen oder anderer Kommunikation an den beteiligten Prozessen fortgesetzt werden. Auf diese Weise können nicht blockierende Sammlungsvorgänge mögliche Synchronisierungseffekte von Gather-Vorgängen verringern, indem sie im "Hintergrund" ausgeführt werden.

Alle Abschlussaufrufe (z. B. MPI_Wait) werden für nicht blockierende Gather-Vorgänge unterstützt.

Anforderungen

Produkt

Microsoft MPI v6

Header

Mpi.h; Mpif.h

Bibliothek

Msmpi.lib

DLL

Msmpi.dll

Weitere Informationen

MPI-Kollektive Funktionen

MPI_Datatype

MPI_Gather

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome