Delen via


MPI_Grequest_query_function callback-functie

MPI_Grequest_query_function is een tijdelijke aanduiding voor de door de toepassing gedefinieerde functienaam.

Syntaxis

int MPI_Grequest_query_function(
  _In_opt_ void       *extra_state,
  _Out_    MPI_Status *status
);

Parameters

  • extra_state [in, optioneel]
    Extra status.

  • status [uit]
    MPI-statusobject.

Retourwaarde

Alle callback-functies retourneren een foutcode. De code wordt teruggegeven en behandeld voor de foutcode door de MPI-functie die de callback-functie heeft aangeroepen. Als er bijvoorbeeld foutcodes worden geretourneerd, wordt de foutcode die door de callback-functie wordt geretourneerd, geretourneerd door de MPI-functie die de callback-functie heeft aangeroepen. In het geval van een MPI_{Wait|Test}elke aanroep die zowel query_fn als free_fn aanroept, retourneert de MPI-aanroep de foutcode die is geretourneerd door de laatste callback, namelijk free_fn. Als een of meer van de aanvragen in een aanroep naar MPI_{Wait|Testen}{sommige|all} is mislukt, waarna de MPI-aanroep MPI_ERR_IN_STATUS retourneert. Als de MPI-aanroep in een dergelijk geval een matrix met statussen heeft doorgegeven, retourneert MPI in elk van de statussen die overeenkomen met een voltooide gegeneraliseerde aanvraag de foutcode die wordt geretourneerd door de bijbehorende aanroep van de free_fn callback-functie. Als de MPI-functie echter is doorgegeven MPI_STATUSES_IGNORE, gaan de afzonderlijke foutcodes die door elke callback-functie worden geretourneerd, verloren.

Fortran

    SUBROUTINE GREQUEST_QUERY_FUNCTION(EXTRA_STATE, STATUS, IERROR)
        INTEGER STATUS(MPI_STATUS_SIZE), IERROR
        INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE

Opmerkingen

De functie query_fn berekent de status die moet worden geretourneerd voor de gegeneraliseerde aanvraag. De status bevat ook informatie over geslaagde/mislukte annulering van de aanvraag (resultaat moet worden geretourneerd door MPI_Test_cancelled).

De query_fn callback wordt aangeroepen door de MPI_{Wait|Test}{any|some|all} aanroep waarmee de gegeneraliseerde aanvraag is voltooid die is gekoppeld aan deze callback. De callback-functie wordt ook aangeroepen door aanroepen naar MPI_Request_get_status, als de aanvraag is voltooid wanneer de aanroep plaatsvindt. In beide gevallen wordt de callback doorgegeven aan de bijbehorende statusvariabele die door de gebruiker is doorgegeven aan de MPI-aanroep; de status die is ingesteld door de callback-functie wordt geretourneerd door de MPI-aanroep. Als de gebruiker MPI_STATUS_IGNORE of MPI_STATUSES_IGNORE heeft opgegeven bij de MPI-functie waardoor query_fn wordt aangeroepen, geeft MPI een geldig statusobject door aan query_fn en wordt deze status genegeerd bij het retourneren van de callback-functie. Houd er rekening mee dat query_fn pas wordt aangeroepen nadat MPI_Grequest_complete is aangeroepen op de aanvraag; het kan meerdere keren worden aangeroepen voor dezelfde gegeneraliseerde aanvraag, bijvoorbeeld als de gebruiker MPI_Request_get_status meerdere keren voor deze aanvraag aanroept. Houd er ook rekening mee dat een aanroep naar MPI_{Wait|Testen}{sommige|all} kan leiden tot meerdere aanroepen van query_fn callback-functies, één voor elke gegeneraliseerde aanvraag die wordt voltooid door de MPI-aanroep. De volgorde van deze aanroepen wordt niet opgegeven door MPI.

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

Zie ook

Externe MPI-functies

MPI_Grequest_start

MPI_Waitall

MPI_Waitsome

MPI_Waitany

MPI_Testall

MPI_Testsome

MPI_Testany