MPI_Improbe-Funktion
Tests für eine Nachricht auf nicht blockierende Weise. Stellt einen Mechanismus bereit, um die spezifische Nachricht zu empfangen, die unabhängig von dazwischenliegenden Test-/Empfangsvorgängen abgeglichen wurde. Die übereinstimmende Nachricht wird aus der Empfangswarteschlange entfernt, sodass die Anwendung die Möglichkeit hat, zu entscheiden, wie die Nachricht empfangen werden soll, basierend auf den Informationen, die durch den nicht blockierenden Abgleichstestvorgang zurückgegeben werden. Die übereinstimmene Nachricht wird dann mit der MPI_Mrecv- oder MPI_Imrecv-Funktion empfangen.
Syntax
int MPIAPI MPI_Improbe(
_In_ int source,
_In_ int tag,
_In_ MPI_Comm comm,
_Out_ Int *flag,
_Out_ MPI_Message *message,
_Out_ MPI_Status *status
);
Parameter
Source [in]
Quellrang oder MPI_ANY_SOURCE.Tag [in]
Nachrichtentag oder MPI_ANY_TAG.comm [in]
MPI-Communicator-Handle.flag [out]
Enthält beim Zurückgeben einen Zeiger auf eine ganze Zahl, der angibt, ob die angegebene Quelle, das Tag und das angegebene Comm übereinstimmen. Ein Wert ungleich 0 gibt an, dass die Parameter übereinstimmen.Nachricht [out]
Enthält bei der Rückgabe einen Zeiger auf die übereinstimmende 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_IMPROBE(SOURCE, TAG, COMM, FLAG, MESSAGE, STATUS, IERROR)
INTEGER SOURCE, TAG, COMM, FLAG, MESSAGE, STATUS(MPI_STATUS_SIZE), IERROR
Hinweise
Diese Funktion gibt das Flag = true zurück, wenn eine Nachricht vorhanden ist, die empfangen werden kann und dem muster entspricht, das durch die Argumente source, tag und comm angegeben wird. Der Aufruf entspricht der gleichen Nachricht, die von einem Aufruf an MPI_Recv empfangen worden wäre, der am gleichen Punkt im Programm ausgeführt wurde, und gibt in status denselben Wert zurück, der von MPI_Recv zurückgegeben worden wäre. Darüber hinaus gibt es in der Nachricht ein Handle an die übereinstimmende Nachricht zurück. Andernfalls gibt der Aufruf das Flag = false zurück und lässt status und die Nachricht nicht definiert.
Anforderungen
Produkt |
Microsoft MPI v6 |
Header |
Mpi.h; Mpif.h |
Bibliothek |
Msmpi.lib |
DLL |
Msmpi.dll |