MPI_Iallreduce fonction
Combine les valeurs de tous les processus et distribue le résultat à tous les processus de manière non bloquante.
Syntaxe
int MPIAPI MPI_Iallreduce(
_In_opt_ const void *sendbuf,
_Out_opt_ void *recvbuf,
_In_ int count,
_In_ MPI_Datatype datatype,
_In_ MPI_Op op,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
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 sur 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.count [in]
Nombre d’éléments à envoyer à partir de ce processus.datatype [in]
Type de données 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]
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 communication MPI_Comm .request [out]
Handle MPI_Request représentant l’opération de communication.
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_IALLREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER COUNT, DATATYPE, OP, 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 éventuels effets de synchronisation 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.
Configuration requise
Produit |
Microsoft MPI v7 |
En-tête |
Mpi.h ; Mpif.h |
Bibliothèque |
Msmpi.lib |
DLL |
Msmpi.dll |