MPI_Mrecv-Funktion
Führt einen blockierenden Empfang für eine Nachricht aus , die mit MPI_Mprobe oder MPI_Improbe übereinstimmt.
Syntax
int MPIAPI MPI_Mrecv(
_Out_ void *buf,
_In_ int count,
_In_ MPI_Datatype datatype,
_Inout_ MPI_Message *message,
_Out_ MPI_Status *status
);
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 im Pufferarray.Nachricht [ein, aus]
Enthält einen Zeiger auf die Nachricht.status [out]
Enthält bei der Rückgabe einen Zeiger auf eine MPI_Status Struktur, in der Informationen zur Nachricht gespeichert werden.
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_MRECV(BUF, COUNT, DATATYPE, MESSAGE, STATUS, IERROR)
<type> BUF(*)
INTEGER COUNT, DATATYPE, MESSAGE, STATUS(MPI_STATUS_SIZE), IERROR
Hinweise
Diese Funktion empfängt eine Nachricht, die von einem übereinstimmenden Testvorgang abgeglichen wird. Der Empfangspuffer besteht aus dem Speicher, der die Anzahl aufeinanderfolgender Elemente des vom Datentyp angegebenen Typs enthält, beginnend bei address buf. Die Länge der empfangenen Nachricht muss kleiner oder gleich der Länge des Empfangspuffers sein. Ein Überlauffehler tritt auf, wenn alle eingehenden Daten ohne Abschneiden nicht in den Empfangspuffer passen.
Wenn die Nachricht kürzer als der Empfangspuffer ist, werden nur die Speicherorte geändert, die der (kürzeren) Nachricht entsprechen.
Bei der Rückgabe von dieser Funktion wird das Nachrichtenhandle auf MPI_MESSAGE_NULL festgelegt. Alle Fehler, die während der Ausführung dieses Vorgangs auftreten, werden gemäß dem Fehlerhandlersatz für den Communicator behandelt, der im übereinstimmenden Testaufruf verwendet wird, der das Nachrichtenhandle erzeugt hat.
Anforderungen
Produkt |
Microsoft MPI v6 |
Header |
Mpi.h; Mpif.h |
Bibliothek |
Msmpi.lib |
DLL |
Msmpi.dll |