MPI_Iscatterv fonction
Syntaxe
int MPIAPI MPI_Iscatterv(
_In_opt_ const void *sendbuf,
_In_opt_ const int sendcounts[],
_In_opt_ const int displs[],
_In_ 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, facultatif]
Pointeur vers une mémoire tampon qui contient les données à envoyer par le processus racine.Ce paramètre est ignoré pour tous les processus non racines.
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 le processus racine. Les paramètres recvcount et recvtype sont ignorés. Le vecteur éparpillé est toujours considéré comme contenant n segments, où n est la taille du groupe ; le segment qui correspond au processus racine n’est pas déplacé.
sendcounts[] [in, facultatif]
Nombre d’éléments à envoyer à chaque processus. Si sendcounts[i] est égal à zéro, la partie données du message pour ce processus est vide.Ce paramètre est ignoré pour tous les processus non racines.
displs[] [in, facultatif]
Emplacements des données à envoyer à chaque processus de communication. Chaque emplacement dans le tableau est relatif à l’élément correspondant du tableau sendbuf .Dans les tableaux de paramètres sendbuf, sendcounts et displs , le nièmeélément de chaque tableau fait référence aux données à envoyer au nièmeprocessus de communication.
Ce paramètre n’est significatif qu’au niveau du processus racine.
sendtype [in]
Type de données de chaque élément de la mémoire tampon.Ce paramètre est ignoré pour tous les processus non racines.
recvbuf [out, facultatif]
Pointeur vers une mémoire tampon qui contient les données reçues sur chaque processus. Le nombre et le type de données des éléments de la mémoire tampon sont spécifiés dans les paramètres recvcount et recvtype .recvcount [in]
Nombre d’éléments dans la mémoire tampon de réception. Si le nombre est égal à zéro, la partie données du message est vide.recvtype [in]
Type de données des éléments dans la mémoire tampon de réception.racine [in]
Classement dans le processus d’envoi au sein du communicateur spécifié.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_ISCATTERV(SENDBUF, SENDCOUNTS, DISPLS, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNTS(*), DISPLS(*), SENDTYPE, RECVCOUNT, RECVTYPE, 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 é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 |