Partager via


fonction MPI_Allreduce

Combine les valeurs de tous les processus et distribue le résultat à tous les processus.

Syntaxe

int MPIAPI MPI_Allreduce(
  _In_opt_  const void         *sendbuf,
  _Out_opt_       void         *recvbuf,
  _In_            int          count,
  _In_            MPI_Datatype datatype,
  _In_            MPI_Op       op,
  _In_            MPI_Comm     comm
);

Paramètres

  • sendbuf [in, facultatif]
    Pointeur vers les données à envoyer à tous les processus du groupe. Le nombre et le type de données des éléments de la mémoire tampon sont spécifiés dans les paramètres count et datatype.

    Si le paramètre comm fait référence à un intracommunicateur, vous pouvez spécifier une option in place en spécifiant MPI_IN_PLACE dans tous les processus. Dans ce cas, les données d’entrée sont prises à chaque processus à partir de la mémoire tampon de réception, où elles seront remplacées par les données de sortie.

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

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

  • datatype [in]
    MPI_Datatype de chaque élément de la mémoire tampon. Ce paramètre doit être compatible avec l’opération comme spécifié dans le paramètre op .

  • 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 MPI_Op.

  • comm [in]
    Handle de communicateur MPI_Comm.

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

Remarques

Si comm est un intercommunicateur, le résultat de la réduction des données fournies par les processus du groupe A est stocké à chaque processus du groupe B, et vice versa. Les deux groupes doivent fournir des arguments count et datatype qui spécifient la même signature de type.

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

Configuration requise

Produit

Package redistribuable MS-MPI HPC Pack 2012, package redistribuable HPC Pack 2008 R2 MS-MPI, package redistribuable MS-MPI HPC Pack 2008 ou utilitaires clients HPC Pack 2008

En-tête

Mpi.h ; Mpif.h

Bibliothèque

Msmpi.lib

DLL

Msmpi.dll

Voir aussi

Fonctions collectives MPI

MPI_Reduce

MPI_Datatype

MPI_Op