Freigeben über


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

Weitere Informationen

MPI-Punkt-zu-Punkt-Funktionen

MPI_Mprobe

MPI_Recv

MPI_Imrecv