Partager via


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

Voir aussi

Fonctions collectives MPI

MPI_Datatype

MPI_Gather

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome