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 |