Delen via


MPI_Imrecv functie

Hiermee wordt een niet-blokkerende ontvangst uitgevoerd voor een bericht dat overeenkomt met MPI_Mprobe of MPI_Improbe.

Syntaxis

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

Parameters

  • buf [uit]
    Een verwijzing naar het adres van de ontvangstbuffer.

  • aantal [in]
    Het aantal gegevenstype-elementen in buf.

  • datatype [in]
    Het MPI-gegevenstype van de elementen in buf.

  • bericht [in, uit]
    Bevat een aanwijzer naar het bericht.

  • aanvraag [uit]
    Bevat bij terugkomst een aanwijzer naar een MPI_REQUEST ingang die de communicatiebewerking vertegenwoordigt.

Retourwaarde

Retourneert MPI_SUCCESS bij succes. Anders is de retourwaarde een foutcode.

In Fortran wordt de retourwaarde opgeslagen in de parameter IERROR .

Fortran

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

Opmerkingen

Deze functie is de niet-blokkerende variant van MPI_Mrecv en start een niet-blokkerende ontvangst van een overeenkomend bericht. Voltooiingssemantiek is vergelijkbaar met MPI_Irecv.

Wanneer deze functie wordt geretourneerd, wordt de berichtingang ingesteld op MPI_MESSAGE_NULL.

Als deze functie wordt aangeroepen met MPI_MESSAGE_NO_PROC als het berichtargument, wordt de aanroep onmiddellijk geretourneerd met een aanvraagobject dat, wanneer dit is voltooid, een statusobject oplevert dat is ingesteld op bron = MPI_PROC_NULL, tag = MPI_ANY_TAG en aantal = 0, alsof er een ontvangst van MPI_PROC_NULL is uitgegeven. Een aanroep van deze functie met MPI_MESSAGE_NULL is onjuist.

Vereisten

Product

Microsoft MPI v6

Header

Mpi.h; Mpif.h

Bibliotheek

Msmpi.lib

DLL

Msmpi.dll

Zie ook

MPI-punt-naar-puntfuncties

MPI_Irecv

MPI_Mrecv

MPI_Mprobe

MPI_Improbe