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 |