Dela via


funktionen MPI_Grequest_start

Skapar och returnerar en användardefinierad begäran.

Syntax

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
);

Parametrar

  • query_fn [in]
    Återanropsfunktionen anropas när begärans status efterfrågas.

  • free_fn [in]
    Återanropsfunktionen anropas när begäran frigörs.

  • cancel_fn [in]
    Återanropsfunktionen anropas när begäran avbryts.

  • extra_state [in, valfritt]
    Extra tillstånd som skickas till funktionerna ovan.

  • begäran [ut]
    Generaliserad begäran.

Returvärde

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

I Fortran lagras returvärdet i parametern 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

Kommentarer

Returvärdena från återanropsfunktionerna måste vara en giltig MPI-felkod eller -klass. Det här värdet kan antingen vara returvärdet från valfri MPI-rutin (med ett undantag som anges nedan) eller någon av MPI-felklasserna. För portabla program kan MPI_ERR_OTHER användas. om du vill ange mer specifik information skapar du en ny MPI-felklass eller kod med MPI_Add_error_class eller MPI_Add_error_code och returnerar det värdet.

MPI-standarden är inte tydlig med returvärdena från återanropsrutinerna. Det finns dock anteckningar i standarden som innebär att dessa är MPI-felkoder. Till exempel kräver sidorna 169 rad 46 till sida 170, rad 1 att free_fn returnerar en MPI-felkod som kan användas i MPI-slutförandefunktionerna när de returnerar MPI_ERR_IN_STATUS.

Det enda specialfallet är felvärdet som returneras av MPI_Comm_dup när attributets återanropsrutin returnerar ett fel. MPI-standarden är inte tydlig med vilka värden som kan användas för att indikera en felretur. Dessutom använde Intel MPI-testsviten värden som inte var noll för att indikera fel, och förväntade sig att dessa värden skulle returneras av MPI_Comm_dup när attributrutinerna påträffade ett fel. Sådana felvärden kanske inte är giltiga MPI-felkoder eller -klasser. På grund av detta är det användarens ansvar att antingen använda giltiga MPI-felkoder i gengäld från attributåteranropen, om dessa felkoder ska returneras av ett generaliserat begärandeåteranrop eller att identifiera och konvertera dessa felkoder till giltiga MPI-felkoder (kom ihåg att MPI-felklasser är giltiga felkoder).

Krav

Produkt

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

Huvud

Mpi.h; Mpif.h

Bibliotek

Msmpi.lib

DLL

Msmpi.dll

Se även

Externa MPI-funktioner

MPI_Grequest_query_function

MPI_Grequest_free_function

MPI_Grequest_cancel_function