Delen via


MPI_Grequest_free_function callback-functie

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

Syntaxis

int MPI_Grequest_free_function(
  _In_opt_ void *extra_state
);

Parameters

  • extra_state [in, optioneel]
    Extra status.

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_Waitany en MPI_Testany 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_Waitsome, MPI_Waitall, MPI_Testsome of MPI_Testall mislukt, retourneert de MPI-aanroep MPI_ERR_IN_STATUS. 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_FREE_FUNCTION(EXTRA_STATE, IERROR)
        INTEGER IERROR
        INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE

Opmerkingen

De functie free_fn wordt aangeroepen om door de gebruiker toegewezen resources op te schonen wanneer de gegeneraliseerde aanvraag wordt vrijgemaakt.

De free_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. free_fn wordt aangeroepen na het aanroepen van query_fn voor dezelfde aanvraag. Als de MPI-aanroep echter meerdere gegeneraliseerde aanvragen heeft voltooid, wordt de volgorde waarin free_fn callback-functies worden aangeroepen, niet opgegeven door MPI.

De free_fn callback wordt ook aangeroepen voor gegeneraliseerde aanvragen die worden vrijgemaakt door een aanroep naar MPI_Request_free (geen aanroep naar MPI_{Wait|Test}{any|some|all} vindt plaats voor een dergelijke aanvraag). In dit geval wordt de callback-functie aangeroepen in de MPI-aanroep MPI_Request_free of in de MPI-aanroep MPI_Grequest_complete, afhankelijk van wat zich het laatst voordoet, d.w.z. in dit geval wordt de code voor het daadwerkelijk vrijmaken uitgevoerd zodra beide aanroepen MPI_Request_free en MPI_Grequest_complete zijn opgetreden. De toewijzing van de aanvraag wordt pas ongedaan gemaakt nadat free_fn is voltooid. Houd er rekening mee dat free_fn slechts eenmaal per aanvraag wordt aangeroepen door een correct programma.

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