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 |