Partager via


MPI_Grequest_start fonction

Crée et retourne une requête définie par l’utilisateur.

Syntaxe

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

Paramètres

  • query_fn [in]
    Fonction de rappel appelée lorsque la demande status est interrogée.

  • free_fn [in]
    Fonction de rappel appelée lorsque la demande est libérée.

  • cancel_fn [in]
    Fonction de rappel appelée lorsque la demande est annulée.

  • extra_state [in, facultatif]
    État supplémentaire passé aux fonctions ci-dessus.

  • request [out]
    Requête généralisée.

Valeur retournée

Retourne MPI_SUCCESS en cas de réussite. Sinon, la valeur de retour est un code d’erreur.

Dans Fortran, la valeur de retour est stockée dans le paramètre 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

Remarques

Les valeurs de retour des fonctions de rappel doivent être un code d’erreur MPI valide ou une classe. Cette valeur peut être la valeur de retour de n’importe quelle routine MPI (à une exception près indiquée ci-dessous) ou l’une des classes d’erreur MPI. Pour les programmes portables, MPI_ERR_OTHER peuvent être utilisés ; pour fournir des informations plus spécifiques, créez une classe d’erreur MPI ou un code avec MPI_Add_error_class ou MPI_Add_error_code et retournez cette valeur.

La norme MPI n’est pas claire sur les valeurs de retour des routines de rappel. Toutefois, il existe des notes dans la norme qui impliquent qu’il s’agit de codes d’erreur MPI. Par exemple, les pages 169 de la ligne 46 à la page 170, ligne 1, exigent que le free_fn retourne un code d’erreur MPI qui peut être utilisé dans les fonctions d’achèvement MPI lorsqu’ils retournent MPI_ERR_IN_STATUS.

Le seul cas particulier est la valeur d’erreur retournée par MPI_Comm_dup lorsque la routine de rappel d’attribut retourne un échec. La norme MPI n’indique pas clairement quelles valeurs peuvent être utilisées pour indiquer un retour d’erreur. En outre, la suite de tests Intel MPI a utilisé des valeurs non nulles pour indiquer l’échec et s’attendait à ce que ces valeurs soient retournées par le MPI_Comm_dup lorsque les routines d’attribut rencontraient une erreur. Ces valeurs d’erreur peuvent ne pas être des codes d’erreur MPI ou des classes valides. Pour cette raison, il incombe à l’utilisateur d’utiliser des codes d’erreur MPI valides en retour à partir des rappels d’attribut, si ces codes d’erreur doivent être retournés par un rappel de demande généralisée, ou de détecter et de convertir ces codes d’erreur en codes d’erreur MPI valides (rappelez-vous que les classes d’erreur MPI sont des codes d’erreur valides).

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

Bibliothèque

Msmpi.lib

DLL

Msmpi.dll

Voir aussi

Fonctions externes MPI

MPI_Grequest_query_function

MPI_Grequest_free_function

MPI_Grequest_cancel_function