MPI_Igather, fonction
Collecte les données de tous les membres d’un groupe vers un membre de manière non bloquante.
Syntaxe
int WINAPI MPI_Igather(
_In_ void *sendbuf,
int sendcount,
MPI_Datatype sendtype,
_Out_opt_ void *recvbuf,
_In_ int recvcount,
_In_ MPI_Datatype recvtype,
_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 à envoyer à la racine. La mémoire tampon se compose d’éléments successifs sendcount du MPI_Datatype indiqué par le handle sendtype . La longueur du message est spécifiée en termes de nombre d’éléments, et non en nombre d’octets.sendcount
Nombre d’éléments sendtype dans sendbuf. Si la valeur est zéro, la partie données du message est vide.sendtype
Handle MPI_Datatype représentant le type de données de chaque élément dans sendbuf.recvbuf [out, facultatif]
Pointeur vers une mémoire tampon contenant les données reçues de chaque processus sur la racine, y compris les données envoyées par le processus racine (significatives uniquement à la racine). Le recvbuf de la mémoire tampon de réception est ignoré pour tous les processus non racines. Sur le processus racine, recvbuf se compose d’éléments successifs recvcount du MPI_Datatype indiqués par le handle recvtype . La longueur du message est spécifiée en termes de nombre d’éléments, et non en nombre d’octets.recvcount [in]
Nombre d’éléments recvtype dans recvbuf. Si la valeur est égale à zéro, la partie données du message est vide (significative uniquement à la racine).recvtype [in]
Handle MPI_Datatype représentant le type de données de chaque élément dans recvbuf (significatif uniquement à la racine).root [in]
Classement du processus de réception dans la MPI_Commcomm.comm [in]
Handle de communicateur 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_IGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE,
ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR
Remarques
Un appel non bloquant lance une opération de collecte 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 collecte non bloquantes peuvent atténuer les effets de synchronisation possibles des opérations de collecte 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 collecte non bloquantes.
Configuration requise
Produit |
Microsoft MPI v6 |
En-tête |
Mpi.h ; Mpif.h |
Bibliothèque |
Msmpi.lib |
DLL |
Msmpi.dll |