Partager via


MPI_Grequest_free_function fonction de rappel

MPI_Grequest_free_function est un espace réservé pour le nom de fonction défini par l’application.

Syntaxe

int MPI_Grequest_free_function(
  _In_opt_ void *extra_state
);

Paramètres

  • extra_state [in, facultatif]
    État supplémentaire.

Valeur retournée

Toutes les fonctions de rappel retournent un code d’erreur. Le code est renvoyé et traité en fonction du code d’erreur par la fonction MPI qui a appelé la fonction de rappel. Par exemple, si des codes d’erreur sont retournés, le code d’erreur retourné par la fonction de rappel est retourné par la fonction MPI qui a appelé la fonction de rappel. Dans le cas d’un appel MPI_Waitany et MPI_Testany qui appelle à la fois query_fn et free_fn, l’appel MPI retourne le code d’erreur retourné par le dernier rappel, à savoir free_fn. Si une ou plusieurs des demandes d’un appel à MPI_Waitsome, MPI_Waitall, MPI_Testsome ou MPI_Testall ont échoué, l’appel MPI retourne MPI_ERR_IN_STATUS. Dans ce cas, si l’appel MPI a été passé un tableau d’états, MPI retourne dans chacun des états correspondant à une demande généralisée terminée le code d’erreur retourné par l’appel correspondant à sa fonction de rappel free_fn . Toutefois, si la fonction MPI a été transmise MPI_STATUSES_IGNORE, les codes d’erreur individuels retournés par chaque fonction de rappel seront perdus.

Fortran

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

Remarques

La fonction free_fn est appelée pour propre les ressources allouées par l’utilisateur lorsque la demande généralisée est libérée.

Le rappel free_fn est appelé par le MPI_{Wait|Test}{any|some|all} call qui a terminé la demande généralisée associée à ce rappel. free_fn est appelé après l’appel à query_fn pour la même demande. Toutefois, si l’appel MPI a effectué plusieurs demandes généralisées, l’ordre dans lequel free_fn fonctions de rappel sont appelées n’est pas spécifié par MPI.

Le rappel free_fn est également appelé pour les demandes généralisées qui sont libérées par un appel à MPI_Request_free (aucun appel à MPI_{Wait|Test}{any|some|all} se produira pour une telle demande). Dans ce cas, la fonction de rappel est appelée soit dans le MPI_Request_free d’appel MPI, soit dans le MPI_Grequest_complete d’appel MPI, selon la dernière éventualité, c’est-à-dire, dans ce cas, le code de libération réel est exécuté dès que les deux appels MPI_Request_free et MPI_Grequest_complete ont eu lieu. La demande n’est libérée qu’une fois free_fn terminée. Notez que free_fn ne sera appelé qu’une seule fois par demande par un programme correct.

Configuration requise

Produit

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

En-tête

Mpi.h ; Mpif.h

Voir aussi

Fonctions externes MPI

MPI_Grequest_start

MPI_Waitall

MPI_Waitsome

MPI_Waitany

MPI_Testall

MPI_Testsome

MPI_Testany