Delen via


MPI_Grequest_start functie

Hiermee wordt een door de gebruiker gedefinieerde aanvraag gemaakt en geretourneerd.

Syntaxis

int MPIAPI MPI_Grequest_start(
  _In_     MPI_Grequest_query_function  *query_fn,
  _In_     MPI_Grequest_free_function   *free_fn,
  _In_     MPI_Grequest_cancel_function *cancel_fn,
  _In_opt_ void                         *extra_state,
  _Out_    MPI_Request                  *request
);

Parameters

  • query_fn [in]
    Callback-functie die wordt aangeroepen wanneer de aanvraagstatus wordt opgevraagd.

  • free_fn [in]
    De callback-functie wordt aangeroepen wanneer de aanvraag wordt vrijgemaakt.

  • cancel_fn [in]
    De callback-functie wordt aangeroepen wanneer de aanvraag wordt geannuleerd.

  • extra_state [in, optioneel]
    Extra status doorgegeven aan de bovenstaande functies.

  • aanvraag [uit]
    Gegeneraliseerde aanvraag.

Retourwaarde

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

In Fortran wordt de retourwaarde opgeslagen in de parameter IERROR .

Fortran

    MPI_GREQUEST_START(QUERY_FN, FREE_FN, CANCEL_FN, EXTRA_STATE, REQUEST, IERROR)
        INTEGER REQUEST, IERROR
        EXTERNAL QUERY_FN, FREE_FN, CANCEL_FN
        INTEGER (KIND=MPI_ADDRESS_KIND) EXTRA_STATE

Opmerkingen

De retourwaarden van de callback-functies moeten een geldige MPI-foutcode of -klasse zijn. Deze waarde kan de retourwaarde zijn van een MPI-routine (met één uitzondering die hieronder wordt vermeld) of een van de MPI-foutklassen. Voor draagbare programma's kunnen MPI_ERR_OTHER worden gebruikt; als u specifiekere informatie wilt opgeven, maakt u een nieuwe MPI-foutklasse of -code met MPI_Add_error_class of MPI_Add_error_code en retourneert u die waarde.

De MPI-standaard is niet duidelijk over de retourwaarden van de callbackroutines. De standaard bevat echter opmerkingen die impliceren dat dit MPI-foutcodes zijn. Pagina's 169, regel 46 tot en met pagina 170, regel 1, vereisen bijvoorbeeld dat de free_fn een MPI-foutcode retourneren die kan worden gebruikt in de MPI-voltooiingsfuncties wanneer ze MPI_ERR_IN_STATUS retourneren.

Het enige speciale geval is de foutwaarde die wordt geretourneerd door MPI_Comm_dup wanneer de callbackroutine van het kenmerk een fout retourneert. De MPI-standaard is niet duidelijk welke waarden kunnen worden gebruikt om een fout geretourneerd aan te geven. Verder maakte de Intel MPI-testsuite gebruik van niet-nulwaarden om een fout aan te geven en verwachtte dat deze waarden zouden worden geretourneerd door de MPI_Comm_dup wanneer de kenmerkroutines een fout hebben aangetroffen. Dergelijke foutwaarden zijn mogelijk geen geldige MPI-foutcodes of -klassen. Daarom is het de verantwoordelijkheid van de gebruiker om geldige MPI-foutcodes te gebruiken als resultaat van de callbacks van het kenmerk, als deze foutcodes moeten worden geretourneerd door een gegeneraliseerde aanvraag callback, of om deze foutcodes te detecteren en te converteren naar geldige MPI-foutcodes (onthoud dat MPI-foutklassen geldige foutcodes zijn).

Vereisten

Product

HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package of HPC Pack 2008 Client Utilities

Header

Mpi.h; Mpif.h

Bibliotheek

Msmpi.lib

DLL

Msmpi.dll

Zie ook

Externe MPI-functies

MPI_Grequest_query_function

MPI_Grequest_free_function

MPI_Grequest_cancel_function