MPI_Imrecv-Funktion
Führt einen nicht blockierenden Empfang für eine Nachricht aus, die von MPI_Mprobe oder MPI_Improbe abgeglichen wird.
Syntax
int MPIAPI MPI_Imrecv(
_Out_ void *buf,
_In_ int count,
_In_ MPI_Datatype datatype,
_Inout_ MPI_Message *message,
_Out_ MPI_Request *request
);
Parameter
buf [out]
Ein Zeiger auf die Adresse des Empfangspuffers.Anzahl [in]
Die Anzahl der Datentypelemente in buf.Datentyp [in]
Der MPI-Datentyp der Elemente in buf.Nachricht [ein, ausgehend]
Enthält einen Zeiger auf die Nachricht.Request [out]
Enthält bei der Rückgabe einen Zeiger auf ein 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_IMRECV(BUF, COUNT, DATATYPE, MESSAGE, REQUEST, IERROR)
<type> BUF(*)
INTEGER COUNT, DATATYPE, MESSAGE, REQUEST, IERROR
Hinweise
Diese Funktion ist die nicht blockierende Variante von MPI_Mrecv und startet einen nicht blockierenden Empfang einer übereinstimmenden Nachricht. Die Vervollständigungssemantik ähnelt MPI_Irecv.
Bei der Rückkehr von dieser Funktion wird das Nachrichtenhandle auf MPI_MESSAGE_NULL festgelegt.
Wenn diese Funktion mit MPI_MESSAGE_NO_PROC als Nachrichtenargument aufgerufen wird, wird der Aufruf sofort mit einem Anforderungsobjekt zurückgegeben, das nach Abschluss ein status-Objekt ergibt, das aufQuell-MPI_PROC_NULL = , Tag = MPI_ANY_TAG und Anzahl = 0 festgelegt ist, als ob ein Empfang von MPI_PROC_NULL ausgegeben würde. Ein Aufruf dieser Funktion mit MPI_MESSAGE_NULL ist fehlerhaft.
Anforderungen
Produkt |
Microsoft MPI v6 |
Header |
Mpi.h; Mpif.h |
Bibliothek |
Msmpi.lib |
DLL |
Msmpi.dll |