Partager via


fonction MPI_Ireduce

Effectue une opération de réduction globale (par exemple somme, maximum ou logique et) sur tous les membres d’un groupe de manière non bloquante.

Syntaxe

int MPIAPI MPI_Ireduce(
  _In_      void         *sendbuf,
  _Out_opt_ void         *recvbuf,
  _In_      int          count,
  _In_      MPI_Datatype datatype,
  _In_      MPI_Op       op,
  _In_      int          root,
  _In_      MPI_Comm     comm,
  _Out_     MPI_Request  *request
);

Paramètres

  • sendbuf [in]
    Pointeur vers une mémoire tampon contenant les données de ce rang à utiliser dans la réduction. La mémoire tampon se compose de nombre éléments successifs du MPI_Datatype indiqué par le handle de type de données . La longueur du message est spécifiée en termes de nombre d’éléments, et non de nombre d’octets.

  • recvbuf [out, facultatif]
    Pointeur vers une mémoire tampon pour recevoir le résultat de l’opération de réduction. Ce paramètre est significatif uniquement au niveau du processus racine.

  • count [in]
    Nombre d’éléments à envoyer à partir de ce processus.

  • de type de données [in]
    Handle MPI_Datatype représentant le type de données de chaque élément dans sendbuf.

  • op [in]
    Handle MPI_Op indiquant l’opération de réduction globale à effectuer. Le handle peut indiquer une opération intégrée ou définie par l’application. Pour obtenir la liste des opérations prédéfinies, consultez la rubrique MPI_Op.

  • racine [in]
    Classement du processus de réception dans le MPI_Commcomm.

  • comm [in]
    Handle de communicator MPI_Comm.

  • demande [out]
    Handle MPI_Request représentant l’opération de communication..

Valeur de retour

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_IREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, ROOT, COMM, REQUEST, IERROR) 
        <type> SENDBUF(*), RECVBUF(*) 
        INTEGER COUNT, DATATYPE, OP, ROOT, COMM, REQUEST, IERROR

Remarques

Un appel non bloquant lance une opération de réduction collective qui doit être effectuée dans un appel d’achèvement distinct. Une fois lancée, l’opération peut progresser indépendamment de tout calcul ou autre communication au niveau des processus participants. De cette façon, les opérations de réduction non bloquantes peuvent atténuer les effets synchronisant possibles des opérations de réduction en les exécutant en arrière-plan.

Tous les appels d’achèvement (par exemple, MPI_Wait) sont pris en charge pour les opérations de réduction non bloquantes.

Exigences

Produit

Microsoft MPI v6

En-tête

Mpi.h ; Mpif.h

Bibliothèque

Msmpi.lib

DLL

Msmpi.dll

Voir aussi

fonctions collectives MPI

MPI_Datatype

MPI_Op

MPI_Reduce

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome