Freigeben über


rückruffunktion MPI_Grequest_free_function

MPI_Grequest_free_function ist ein Platzhalter für den anwendungsdefinierte Funktionsnamen.

Syntax

int MPI_Grequest_free_function(
  _In_opt_ void *extra_state
);

Parameter

  • extra_state [in, optional]
    Zusätzlicher Zustand.

Rückgabewert

Alle Rückruffunktionen geben einen Fehlercode zurück. Der Code wird zurückgegeben und entsprechend dem Fehlercode von der MPI-Funktion behandelt, die die Rückruffunktion aufgerufen hat. Wenn beispielsweise Fehlercodes zurückgegeben werden, wird der von der Rückruffunktion zurückgegebene Fehlercode von der MPI-Funktion zurückgegeben, die die Rückruffunktion aufgerufen hat. Im Fall eines MPI_Waitany- und MPI_Testany-Aufrufs, der sowohl query_fn als auch free_fn aufruft, gibt der MPI-Aufruf den Fehlercode zurück, der vom letzten Rückruf zurückgegeben wird, nämlich free_fn. Wenn mindestens eine der Anforderungen in einem Aufruf von MPI_Waitsome, MPI_Waitall, MPI_Testsome oder MPI_Testall fehlgeschlagen ist, gibt der MPI-Aufruf MPI_ERR_IN_STATUS zurück. Wenn der MPI-Aufruf in einem solchen Fall ein Array von Status übergeben wurde, gibt MPI in jedem Status, der einer abgeschlossenen generalisierten Anforderung entspricht, den Fehlercode zurück, der vom entsprechenden Aufruf seiner free_fn Rückruffunktion zurückgegeben wird. Wenn die MPI-Funktion jedoch MPI_STATUSES_IGNORE übergeben wurde, gehen die einzelnen Fehlercodes, die von den einzelnen Rückruffunktionen zurückgegeben werden, verloren.

Fortran

    SUBROUTINE GREQUEST_FREE_FUNCTION(EXTRA_STATE, IERROR)
        INTEGER IERROR
        INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE

Hinweise

Die funktion free_fn wird aufgerufen, um benutzerseitig zugewiesene Ressourcen zu sauber, wenn die generalisierte Anforderung freigegeben wird.

Der free_fn Rückruf wird vom MPI_{Wait| aufgerufen.Test}{any|some|all} -Aufruf, der die generalisierte Anforderung abgeschlossen hat, die diesem Rückruf zugeordnet ist. free_fn wird nach dem Aufruf von query_fn für dieselbe Anforderung aufgerufen. Wenn der MPI-Aufruf jedoch mehrere generalisierte Anforderungen abgeschlossen hat, wird die Reihenfolge, in der free_fn Rückruffunktionen aufgerufen werden, von MPI nicht angegeben.

Der free_fn Rückruf wird auch für generalisierte Anforderungen aufgerufen, die durch einen Aufruf von MPI_Request_free freigegeben werden (kein Aufruf von MPI_{Wait|Test}{any|some|all} tritt für eine solche Anforderung auf). In diesem Fall wird die Rückruffunktion entweder im MPI-Aufruf MPI_Request_free oder im MPI-Aufruf MPI_Grequest_complete aufgerufen, je nachdem, was zuletzt geschieht, d. h., in diesem Fall wird der eigentliche Freisetzungscode ausgeführt, sobald beide Aufrufe MPI_Request_free und MPI_Grequest_complete aufgetreten sind. Die Zuordnung der Anforderung wird erst aufgehoben, nachdem free_fn abgeschlossen ist. Beachten Sie, dass free_fn nur einmal pro Anforderung von einem richtigen Programm aufgerufen wird.

Anforderungen

Produkt

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

Header

Mpi.h; Mpif.h

Weitere Informationen

Externe MPI-Funktionen

MPI_Grequest_start

MPI_Waitall

MPI_Waitsome

MPI_Waitany

MPI_Testall

MPI_Testsome

MPI_Testany