310 likes | 435 Views
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P2. P1. P0. Importance du partitionnement :. P0. P0. P1. P1. P2. P2. P0. P1. P2. 1) Un algorithme de partitionnement/repartitionnement parallèle.
E N D
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P2 P1 P0
Importance du partitionnement : P0 P0 P1 P1 P2 P2 P0 P1 P2
1) Un algorithme de partitionnement/repartitionnement parallèle. 2) Une méthode de parallélisation basée sur le repartitionnement et son application dans l’élaboration d ’un mailleur/remailleur parallèle.
Qualité d ’une partition : - elle doit être équilibrée : le volume de calcul effectué par chaque processeur doit être sensiblement le même. - elle doit minimiser les interfaces entre les sous-domaines de façon à minimiser le temps passé dans les communications.
Exemple d ’une partition 2D La partition Les communications La charge des processeurs
Exemple d’une partition 3D Les communications : La partition : La charge :
Un exemple La partition de maillage 29 52 88 Sa vision simplifiée sous forme de graphe 502 200
2 types de programmation : - programmation maître-esclave Un processeur dirige et donne du travail aux autres processeurs qui sont à ses ordres. - programmation SPMD Tous les processeurs exécutent le même programme. Il est cependant possible de simuler une programmation maître-esclave.
Principe général : Étant donnée une partition : coupler les processeurs, 50 234 34 50 101 234 équilibrer les paires formées, 34 101 142 142 67 142 68 142 67 Puis itérer. 68
Algorithme général Initialisation : un ensemble de personnes avec leur personnalité Une variable logique :espoir tant que ( espoir ) faire pour chaquepersonnefaire construction de son entourage recherche d ’une âme sœur dans son entourage à l ’aide d ’une fonction amitié siâme sœuralors vie commune si pas de changement de sa personnalitéalors déçu sinon déçu fin pour plus d ’espoir si toutes les personnes sont déçues fin tant que
Algorithme de couplage En entrée : - moi - mon entourage En sortie : une variable de situation (ma position) qui égale : - mon âme sœur si je suis marié(e) - seul(e) si je n’ai trouvé(e) personne. La preuve de cet algorithme repose sur le fait que : - amitié est symétrique ; - amitiéa(b)=amitié(a,b) est injective ; - l’espace image de amitié est totalement ordonné.
Tests d ’efficacité avec une fonction coût simplifiée Ici on utilise une fonction coût basée uniquement sur la charge des différents domaines : où Avec comme fonction de couplage :
Vitesse de convergence de l’algorithme suivant différents paramètres
La fonction coût générale La fonction coût devient : Avec : , : une fonction de dans où et Avec comme fonction de couplage :
Précision sur la charge de travail : La charge de travail d ’un processeur correspond à : Où représente le nombre d ’opérations à effectuer, et la vitesse du processeur. Le nombre d ’opérations étant défini par : (resp. ) étant le nombre d ’opérations associé à un élément (resp. à un nœud)
Précision sur les communications : Les communications sont représentées par un coût de communication élément-nœud : n1 Où E (resp N) représente l ’ensemble des éléments (resp nœuds) d ’un domaine. Et l ’ensemble des nœuds apparaissant dans l ’ensemble d ’éléments E. R(e,n) est une relation élément-nœud donnant +/- de cohésion entre «e » et « n » 100 R(e,n1) e R(e,n3) 1 1 R(e,n2) n3 n2
illustrations P(e)=1 P(e)=1 P(e)=1000 S=1 S=8 S=1 S=1 S=4 S=1 S=2 S=1
Suppression des composantes non connexes Une composante : -un ensemble d ’éléments et de nœuds ; -une taille (nb éléments + nb nœuds) ; -un processeur hôte et un d ’accueil. Redéfinition de amitié : Sélection des éléments nœuds à migrer : Rq : la composante la plus grande d ’un domaine représentera ce domaine
Exemple d ’application Vue des domaines non connexes.
Exemple d ’application Un cas où la demi étape est nécessaire, sinon inversion des corridors.
Suppression des corridors Un corridor : -un ensemble d ’éléments et de nœuds ; -une taille (nb éléments + nb nœuds) ; -un processeur hôte et un d ’accueil. Redéfinition de amitié : Sélection des éléments nœuds à migrer : Rq : un corridor de b dans a ne l ’est plus forcément après échange des corridors de a dans b, d’où l ’étape 1/2 Suivie par
Deux méthodes de parallélisation : - Une directe qui consiste à développé une version parallèle des opérateurs locaux ; - Une autre itérative qui modifie la partition de façon à rendre actifs les opérateurs n’ayant pu être exécutés tq
Méthode de parallelisation d ’algorithmes locaux L ’algorithme à paralléliser : où : est un opérateur élémentaire à support local . Soit une partition du domaine : les autres :
1 2 3 4 La seconde se termine lorsque : une illustration :
Utilisation du repartitionneur pour un mailleur/remailleur parallèle Partitionner le domaine Remailler à interfaces fixées chacun des sous-domaines But :repartitionner le domaine de façon à équilibrer les sous-domaines et à bouger les interfaces, puis itérer.
Un test en 3D Raffinement uniforme par un facteur 2 d ’une barre . Le but est atteint : - la partition est identique ; - la taille de maille divisée par 2
En génération maillage et partition initiaux : un point relié à toutes les faces frontières. maillage et partition intermédiaires : la minimisation du volume n’est pas terminée. Maillage final conforme.
Bibliographie Sur la programmation parallèle : - PVM : « PVM3 user’s guide and reference manual » (1994) - MPI : « The Complete Reference Vol 1 (1995) et Vol 2 (1998) » - open MP : « The OpenMp application program interface (API) specification » (1997) Sur les méthodes numériques parallèles utilisées au CEMEF - la thèse de Stéphane Marie « Un modèle de parallélisation SPMD pour la simulation numérique de procédés de mise en forme des matériaux » (1997) - la thèse d’Etienne Perchat « Mini-Elémént et factorisation incomplètes pour la parallélisation d’un solveur de Stokes 2D. Application au forgeage » (2000)