MPI_Iallgather-Funktion
Erfasst Daten von allen Mitgliedern einer Gruppe und sendet die Daten nicht blockierend an alle Mitglieder der Gruppe.
Syntax
int MPIAPI MPI_Iallgather(
_In_opt_ const void *sendbuf,
_In_ int sendcount,
_In_ MPI_Datatype sendtype,
_Out_opt_ void *recvbuf,
_In_ int recvcount,
_In_ MPI_Datatype recvtype,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parameter
sendbuf [in, optional]
Der Zeiger auf die Daten, die an alle Prozesse in der Gruppe gesendet werden sollen. Die Anzahl und der Datentyp der Elemente im Puffer werden in den Parametern sendcount und sendtype angegeben. Jedes Element im Puffer entspricht einem Prozess in der Gruppe.Wenn der comm-Parameter auf einen Intrakommunikationsgeber verweist, können Sie eine direkte Option angeben, indem Sie in allen Prozessen MPI_IN_PLACE angeben. Die Parameter sendcount und sendtype werden ignoriert. Jeder Prozess erfasst Daten im entsprechenden Empfangspufferelement. Der nth-Prozess sendet Daten an das nth-Element des Empfangspuffers.
sendcount [in]
Die Anzahl der Elemente im Puffer, die im sendbuf-Parameter angegeben ist. Wenn sendcount 0 ist, ist der Datenteil der Nachricht leer.sendtype [in]
Der MPI-Datentyp der Elemente im Sendepuffer.recvbuf [out, optional]
Der Zeiger auf einen Puffer, der die Daten enthält, die von jedem Prozess empfangen werden. Die Anzahl und der Datentyp der Elemente im Puffer werden in den Parametern recvcount und recvtype angegeben.recvcount [in]
Die Anzahl der Elemente im Empfangspuffer. Wenn die Anzahl 0 ist, ist der Datenteil der Nachricht leer.recvtype [in]
Der MPI-Datentyp der Elemente im Empfangspuffer.comm [in]
Das MPI_Comm Communicatorhandle.Anforderung [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_IALLGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM, REQUEST, IERROR
Hinweise
Ein nicht blockierende Aufruf initiiert einen Sammelreduktionsvorgang, der in einem separaten Vervollständigungsaufruf abgeschlossen werden muss. Nach der Inbetriebnahme kann der Vorgang unabhängig von der Berechnung oder sonstigen Kommunikation an den teilnehmenden Prozessen ausgeführt werden. Auf diese Weise können nicht blockierende Reduzierungsvorgänge mögliche Synchronisierungseffekte von Reduzierungsvorgängen minimieren, indem sie im "Hintergrund" ausgeführt werden.
Alle Vervollständigungsaufrufe (z. B. MPI_Wait) werden für nicht blockierende Reduzierungsvorgänge unterstützt.
Anforderungen
Produkt |
Microsoft MPI v7 |
Header |
Mpi.h; Mpif.h |
Bibliothek |
Msmpi.lib |
DLL |
Msmpi.dll |