Freigeben über


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

Weitere Informationen

MPI-Punkt-zu-Punkt-Funktionen

MPI_Irecv

MPI_Mrecv

MPI_Mprobe

MPI_Improbe