Dela via


funktionen MPI_Imrecv

Utför en icke-blockerande mottagning för ett meddelande som matchas av MPI_Mprobe eller MPI_Improbe.

Syntax

int MPIAPI MPI_Imrecv(
  _Out_   void         *buf,
  _In_    int          count,
  _In_    MPI_Datatype datatype,
  _Inout_ MPI_Message  *message,
  _Out_   MPI_Request  *request
);

Parametrar

  • buf [ut]
    En pekare till adressen för mottagningsbufferten.

  • count [in]
    Antalet datatypelement i buf.

  • datatype [in]
    MPI-datatypen för elementen i buf.

  • message [in, out]
    Innehåller en pekare till meddelandet.

  • begäran [ut]
    Vid retur innehåller en pekare till ett MPI_REQUEST-handtag som representerar kommunikationsåtgärden.

Returvärde

Returnerar MPI_SUCCESS vid lyckat resultat. Annars är returvärdet en felkod.

I Fortran lagras returvärdet i parametern IERROR .

Fortran

    MPI_IMRECV(BUF, COUNT, DATATYPE, MESSAGE, REQUEST, IERROR)
        <type> BUF(*)
        INTEGER COUNT, DATATYPE, MESSAGE, REQUEST, IERROR

Kommentarer

Den här funktionen är den icke-blockerande varianten av MPI_Mrecv och startar en icke-blockerande mottagning av ett matchat meddelande. Slutförandesemantik liknar MPI_Irecv.

Vid retur från den här funktionen är meddelandehandtaget inställt på MPI_MESSAGE_NULL.

Om den här funktionen anropas med MPI_MESSAGE_NO_PROC som meddelandeargument returnerar anropet omedelbart med ett begärandeobjekt som när det är klart ger ett statusobjekt inställt på källa = MPI_PROC_NULL, tagg = MPI_ANY_TAG och antal = 0, som om en mottagning från MPI_PROC_NULL utfärdades. Ett anrop till den här funktionen med MPI_MESSAGE_NULL är felaktigt.

Krav

Produkt

Microsoft MPI v6

Huvud

Mpi.h; Mpif.h

Bibliotek

Msmpi.lib

DLL

Msmpi.dll

Se även

MPI punkt-till-punkt-funktioner

MPI_Irecv

MPI_Mrecv

MPI_Mprobe

MPI_Improbe