Académique Documents
Professionnel Documents
Culture Documents
(suite)
LOG645
Sommaire
• Introduction à MPI
• Programmes MPI
• Communication point à point
• Communication collectives
• Autres fonctions MPI
• Groupes et communicateurs
• Construction de son propre type
• But primaire:
Permettent de regrouper les tâches décomposées dans un
groupe de tâche (agglomération)
Rend les communications collectives à l’intérieur d’un sous-
ensemble de tâches
Fournir la base pour l’implémentation des topologies
virtuelles
Facilite l’écriture et la compréhension du code
• Union
Tous les éléments du premier groupe, suivis des éléments
du deuxième groupe qui ne sont pas dans le premier
• Intersection
Tous les éléments du premier groupe qui sont aussi des
éléments du deuxième ordonné comme dans le premier
groupe
• Différence
Tous les éléments du premier groupe et qui ne sont pas
dans le deuxième groupe, ordonné comme dans le premier
groupe
LOG645 – Architectures de calculs parallèles
Matériel développé par Lévis Thériault, Automne 2014 24
Remarques sur les groupes
• Libère le groupe
• Cette opération marque l’objet du groupe pour une
désallocation
• Le handle du groupe prend MPI_GROUP_NULL
• Chaque opération avec ce groupe va se compléter
normalement
• MPI_Intercomm_create(MPI_Comm
local_comm, int local_leader, MPI_Comm
bridge_comm, int remote_leader, int
tag, MPI_Comm *newintercomm)
− local_comm local (intra)communicateur
− local_leader identificateur du leader dans le
communicateur local (souvent 0)
− bridge_comm communicateur distant
− remote_leader identificateur du leader dans le
communicateur distant (souvent 0)
− tag étiquette pour la construction d’inter-communicateur
LOG645 – Architectures de calculs parallèles
Matériel développé par Lévis Thériault, Automne 2014 37
Exemple
• int MPI_Type_extent(MPI_Datatype
datatype, MPI_int *size)
• Obtenir l’étendue extent d’un type
datatype
• MPI_Type_contiguous(int count,
MPI_Datatype oldtype, MPI_Datatype
*newtype)
count:nombre de blocs
oldtype: ancien type
newtype: nouveau type
15
-
1 bloc
LOG645 – Architectures de calculs parallèles
Matériel développé par Lévis Thériault, Automne 2014 54
Libération du type
• MPI_Type_free
Détruire un type
Les types dérivés utilisant le type détruit ne sont
pas affectés
Les communications en attente utilisant le type
détruit ne sont pas affectées