Le partitionnement
Transcription
Le partitionnement
A1-1 2014/2015 Partitionnement Aspects théoriques et algorithmiques du calcul réparti Le partitionnement Patrick CIARLET Enseignant-Chercheur UMA [email protected] Françoise LAMOUR [email protected] Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 1 Partitionnement Références • Graphes. C. Berge. 3ème édition, Dunod, 1983. • Computers and intractability, a guide to the theory of NP-completeness. M. R. Garey et D. S. Johnson, Freeman & Company, 1979. • An efficient heuristic procedure for partitioning graphs. B. W. Kernighan et S. Lin. Bell System Tech. J., 1970, Vol. 49, pages 291-307. • On the validity of a front-oriented approach to partitioning large sparse graphs with a connectivity constraint. P. Ciarlet, Jr et F. Lamour. Numerical Algorithms, 1996, Vol. 12, pages 193-214. • Direct methods for sparse matrices. I. S. Duff, A. M. Erisman et J. K. Reid. Oxford Science Publications, New York, U.S.A., 1986. • Partitioning sparse matrices with eigenvectors of graphs. A. Pothen, H. D. Simon et K.-P. Liou. SIAM J. Matrix Anal. Appl., 1990, Vol. 11, pages 430-452. Aspects théoriques et algorithmiques du calcul réparti 2 A1-1 2014/2015 Partitionnement Plan du cours: Le partitionnement • Première partie : – – – – – Motivation Contexte Principes Critères de qualité Approches • Partitionnement fonctionnel • Partitionnement de domaines – Check-list • Seconde partie : – Méthodes de résolution • • • • Méthode de Kernighan et Lin Méthode gloutonne Méthode Cuthill-McKee et méthode des coordonnées Méthode spectrale Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 3 Partitionnement Motivation • On suppose que l’on ne peut pas résoudre le problème sur un seul nœud de calcul car : – le calcul est trop long – on ne dispose pas du stockage (mémoire) nécessaire ⇒ Par exemple, le calcul d’une prévision météorologique pour le lendemain doit se faire en moins de 24 heures ! Aspects théoriques et algorithmiques du calcul réparti 4 A1-1 2014/2015 Partitionnement Contexte (1/2) • Le calcul parallèle pourquoi ? – pour réduire le temps calcul, – pour augmenter la taille des problèmes étudiés (améliorer la précision… si nécessaire !). • Le calcul parallèle sur quoi ? – des machines à mémoire distribuée, – des réseaux de machines (machine parallèle virtuelle), – etc. Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 5 Partitionnement Contexte (2/2) WIFI Grille de nœuds/processeurs Réseau de stations de travail Aspects théoriques et algorithmiques du calcul réparti 6 A1-1 2014/2015 Partitionnement Principes • Le calcul et les données relatives à ce calcul sont découpés en petites tâches. • Le but est d’exhiber le parallélisme. • Suivant les cas on s’intéresse au partitionnement en fonction ou non du nombre de nœuds de la machine cible. • Le partitionnement est généralement suivi d’une étape d’agglomération ou encore équilibrage soit pour augmenter la taille des tâches ou équilibrer leur taille, soit pour diminuer le volume des communications entre les tâches. Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 7 Partitionnement Critères de qualité • Diviser le problème en divisant le calcul aussi bien que les données. • Diviser le problème en tâches de tailles à peu près identiques (plus généralement…). • Diviser le problème en tâches aussi indépendantes que possible. Aspects théoriques et algorithmiques du calcul réparti 8 A1-1 2014/2015 Partitionnement Approches • Partition fonctionnelle : – On s’intéresse d’abord aux calculs (fonctions) que l’on décompose en fonctions élémentaires. – On s’intéresse ensuite aux données associées à chaque fonction élémentaire. • Partition de domaines : – On s’intéresse d’abord aux données et à leur partitionnement. – On s’intéresse ensuite aux calculs qui utilisent ces données. ⇒ Ces 2 approches ne sont pas forcément exclusives. Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 9 Partitionnement Partitionnement fonctionnel (1/2) • On analyse dans l’ordre : – les calculs, – les données, – les échanges. • Exemples : – couplage de codes, – serveur de tâches. Aspects théoriques et algorithmiques du calcul réparti 10 A1-1 2014/2015 Partitionnement Partitionnement fonctionnel (2/2) Serveur de tâches Modèle atmosphérique Modèle d’hydrologie Modèle océanique T1 T2 T3 T4 Modèle de la surface terrestre Couplage de codes Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 11 Partitionnement Partitionnement de domaines (1/5) • On analyse dans l’ordre : – les données, – les calculs, – les échanges. • Exemples : – partitionnement de domaines structurés 1D, 2D, 3D, – partitionnement de domaines non structurés. Aspects théoriques et algorithmiques du calcul réparti 12 A1-1 2014/2015 Partitionnement Partitionnement de domaines (2/5) 1D 2D Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 13 Partitionnement Partitionnement de domaines (3/5) Aspects théoriques et algorithmiques du calcul réparti 14 A1-1 2014/2015 Partitionnement Partitionnement de domaines (4/5) Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 15 Partitionnement Partitionnement de domaines (5/5) Aspects théoriques et algorithmiques du calcul réparti 16 A1-1 2014/2015 Partitionnement Définitions sur les graphes (1/5) • On peut toujours représenter les calculs et les structures de données sous la forme d’un graphe. ! ! ! ! ! ! a = b + c! d = a * a! e = d + a + 1 b 1 c a d e Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 17 Partitionnement Définitions sur les graphes (2/5) • On note G=(V,E) un graphe simple (non orienté et sans boucle ni arêtes multiples) où V est l’ensemble des sommets et E celui des arêtes. • N = |V| et M = |E| représentent respectivement le nombre de sommets et le nombre d’arêtes de G. • Un sommet w est voisin d’un sommet v si l’arête (v,w) appartient à E. • Le degré d’un sommet v, noté d(v), est égal au nombre de ses voisins. Aspects théoriques et algorithmiques du calcul réparti 18 A1-1 2014/2015 Partitionnement Définitions sur les graphes (3/5) • Pour toute paire de sommets (v,w), la distance δ(v,w) est égale à la longueur en nombre d’arêtes du plus petit chemin reliant v à w dans G (en particulier, δ(v,v) = 0). • La distance maximale est appelée le diamètre du graphe. • Un pseudo-diamètre est un chemin de longueur presque maximale dans le graphe. • Le graphe est connexe si et seulement s’il existe un chemin permettant d’aller d’un sommet à n’importe quel autre sommet du graphe. Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 19 Partitionnement Définitions sur les graphes (4/5) δmax = 6 Aspects théoriques et algorithmiques du calcul réparti 20 A1-1 2014/2015 Partitionnement Définitions sur les graphes (5/5) • Dans le cas d’une structure de maillage, le graphe associé peut être construit de deux manières différentes : – soit les sommets du graphe sont les nœuds du maillage et les arêtes sont celles du maillage, on parle de graphe primal – soit les sommets du graphe sont les éléments du maillage et les arêtes correspondent à la connectivité entre éléments (nœuds, arêtes ou faces en commun), on parle de graphe dual. Maillage Graphe primal Graphe dual Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 21 Partitionnement Bipartition (1/2) • G=(V,E) un graphe. • Le problème de la bipartition de G consiste à trouver une bissection de V en deux sous-ensembles disjoints V1 et V2 tels que : – V = V1 ∪ V2. – max (|V1|, |V2|) ≤ α |V|. Ici la constante α dont la valeur appartient à [1/2, 1[ caractérise l’équilibrage de la partition. La partition est équilibrée pour α = 1/2. – |E0| est aussi petit que possible, avec E0 = {(v1,v2) ∈ E et v1 ∈ V1, v2 ∈ V2}. E0 représente l’ensemble des arêtes coupées par la partition de V. Aspects théoriques et algorithmiques du calcul réparti 22 A1-1 2014/2015 Partitionnement Bipartition (2/2) 5 8 8 Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 23 Partitionnement p-partition (1/3) • Le problème de la p-partition de G consiste à trouver une partition de V en p sous-ensembles disjoints V1 , V2, …, Vp tels que : – V = ∪ Vk. – |Vk| ≈ |Vl|. – |E0| est aussi petit que possible, avec E0 = E ∩ ∪k≠ l Vk x Vl. Aspects théoriques et algorithmiques du calcul réparti 24 A1-1 2014/2015 Partitionnement p-partition (2/3) 5 7 5 6 P=3 Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 25 Partitionnement p-partition (3/3) • p-partition directe : – on construit directement les p sous-ensembles. • p-partition récursive : – on construit d’abord 2 sous-ensembles V1 , V2, puis on partitionne chacun des sous-graphes G1 =(V1 , E ∩V1 x V1) et G2 =(V2 , E ∩V2 x V2) en 2 et ainsi de suite … – Le nombre final de sous-graphes est nécessairement une puissance de 2. Aspects théoriques et algorithmiques du calcul réparti 26 A1-1 2014/2015 Partitionnement 8-partition récursive Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 27 Partitionnement 8-partition récursive Aspects théoriques et algorithmiques du calcul réparti 28 A1-1 2014/2015 Partitionnement 8-partition récursive Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 29 Partitionnement Méthodes de résolution • Le problème de la partition d’un graphe est NP-complet, et il n’existe pas (plus précisément, on ne connaît pas) d’algorithme polynomial déterministe pour le résoudre dans sa forme générale. • Rappels d’algorithmique pour les problèmes de décision : – – – – P = { pb | pb soluble par un algorithme polynomial déterministe} ; NP = { pb | pb soluble par un algorithme polynomial non-déterministe} ; Propriété : P ⊂ NP ; a-t-on P = NP ? Pb NP-complet : • Pb ∈ NP ; • Tout Pb’ ∈ NP est transformable polynomialement en Pb. – Les problèmes NP-complets sont les problèmes les plus difficiles de NP. • Conclusion : les méthodes de résolution sont heuristiques. Aspects théoriques et algorithmiques du calcul réparti 30 A1-1 2014/2015 Partitionnement Check-List : des questions à se poser ! 1) Est-ce que la partition peut se faire avec un nombre de tâches supérieur au nombre de nœuds dont je dispose actuellement ? 2) Est-ce que les tâches sont de taille comparable ? 3) Est-ce que l’augmentation de la taille du problème conduit à une augmentation du nombre de tâches ? Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 31 Partitionnement Différentes heuristiques • Deux classes d’heuristiques : – des heuristiques locales, – des heuristiques globales. • Méthodes locales : – Kernighan-Lin (années 70), – gloutonne (années 90). • Méthodes globales : – Cuthill-McKee et coordonnées (années 90), – spectrale (années 90 et 00). Aspects théoriques et algorithmiques du calcul réparti 32 A1-1 2014/2015 Partitionnement Heuristiques globales / locales • Locale : – On résout le problème de la p-partition sans considérer le graphe dans sa totalité. On étudie les voisinages autour d’un sommet ou d’un ensemble de sommets. • Globale : – On résout le problème de la p-partition avec la donnée de tout le graphe. Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 33 Partitionnement Méthode de Kernighan-Lin (1/2) • Idées à la base : – On démarre avec une bissection arbitraire de V en deux sous-ensembles A et B tel que |A| = |B| (à un près). – On essaie d’améliorer la bissection initiale en échangeant un sousensemble de A avec un sous-ensemble de B. Ces sous-ensembles sont déterminés à partir d’une fonction de coût. A B Aspects théoriques et algorithmiques du calcul réparti 34 A1-1 2014/2015 Partitionnement Méthode de Kernighan-Lin (2/2) • Éléments de complexité : – La complexité est O(N2. log2 N). – Elle peut-être réduite à O(M . log2 N), comme proposé dans : « A linear-time heuristic for improving network partitions », de C.M. Fiduccia et R.M. Mattheyses. Proceedings of the 19th IEEE Design Automation Conference, IEEE, pages 175-181, 1982 Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 35 Partitionnement Kernighan-Lin récursive • Principe : – On partitionne le graphe en deux (bissection) puis chaque sous-graphe est à son tour, partitionné en deux et ainsi de suite. – Le nombre de sous-graphes ainsi construit est nécessairement une puissance de deux. • Complexité : – Elle est croissante en fonction de p et reste en O(N2. log2 N). Aspects théoriques et algorithmiques du calcul réparti 36 A1-1 2014/2015 Partitionnement Méthode gloutonne (1/8) • Idées à la base : – On construit les sous-ensembles Vk l’un après l’autre en accumulant simplement les sommets tout au long d’un parcours des arêtes. – Dès lors qu’un sommet est affecté à un sous-ensemble, il est marqué. – Pour construire un sous-ensemble on choisit un sommet de départ, puis on marque ses voisins (premier front), puis les voisins de ses voisins non encore marqués (deuxième front), etc. Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 37 Partitionnement Méthode gloutonne (2/8) Aspects théoriques et algorithmiques du calcul réparti 38 A1-1 2014/2015 Partitionnement Méthode gloutonne (3/8) Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 39 Partitionnement Méthode gloutonne (4/8) Aspects théoriques et algorithmiques du calcul réparti 40 A1-1 2014/2015 Partitionnement Méthode gloutonne (5/8) Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 41 Partitionnement Méthode gloutonne (6/8) • Principe : 1) Choix d’un sommet de départ vs et marquage de ce sommet. 2) Accumulation de descendants (fronts) de vs et marquage des sommets accumulés. 3) Arrêt lorsque la taille requise du sous-ensemble est atteinte, avec une stratégie de tie-break dans le cas de choix multiple. ⇒ Le choix du sommet de départ a bien sûr un effet sur la forme finale du sous-ensemble construit. Il a également un impact sur les communications, c’est-à-dire sur les arêtes entre sous-ensembles différents. ⇒ La façon de sélectionner le nombre de sommets requis parmi tous les candidats du dernier front contribue à la qualité de la partition. Aspects théoriques et algorithmiques du calcul réparti 42 A1-1 2014/2015 Partitionnement Méthode gloutonne (7/8) 1 1 2 2 Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 43 Partitionnement Méthode gloutonne (8/8) • Éléments qualitatifs et de complexité : – Les sous-ensembles sont équilibrés. – Les sous-graphes construits peuvent ne pas être connexes. On peut cependant modifier l’algorithme pour imposer la connexité, mais dans ce cas les sous-ensembles peuvent être un peu déséquilibrés. – Il n’existe aucun résultat théorique concernant le choix du sommet de départ, pas plus que sur la stratégie de tie-break. – La complexité est O(M). – La complexité est indépendante de p. Aspects théoriques et algorithmiques du calcul réparti 44 A1-1 2014/2015 Partitionnement Méthode de Cuthill-McKee (1/4) • Idée à la base : – On détermine une plus grande longueur du graphe, on découpe le graphe en deux orthogonalement à cette longueur. • Principe : – Dans un graphe connexe, on détermine un pseudo-diamètre de façon « peu couteuse » (vs. coût de construction d’un diamètre en O(M.N)). – A partir d’une des extrémités du pseudo-diamètre, on classe les sommets par distance croissante, puis on assigne la moitié la plus proche à un des deux sous-ensembles et le reste à l’autre. Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 45 Partitionnement Méthode de Cuthill-McKee (2/4) 4 3 1 5 5 2 3 5 2 6 4 3 5 4 6 Aspects théoriques et algorithmiques du calcul réparti 46 A1-1 2014/2015 Partitionnement Méthode de Cuthill-McKee (3/4) 4 3 1 5 5 2 3 5 2 6 4 3 5 4 6 Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 47 Partitionnement Méthode de Cuthill-McKee (4/4) • Éléments qualitatifs et de complexité : – Si le graphe de départ est connexe, un des sous-graphes au moins est connexe. – Si le graphe de départ n’est pas connexe, on détermine un pseudo-diamètre par composante connexe. – La complexité est O(M). Aspects théoriques et algorithmiques du calcul réparti 48 A1-1 2014/2015 Partitionnement Méthode de Cuthill-McKee récursive • Principe : – On partitionne le graphe en deux (bissection) puis chaque sous-graphe est à son tour, partitionné en deux et ainsi de suite. – Le nombre de sous-graphes ainsi construits est nécessairement une puissance de deux. • Complexité : – La complexité pour une partition en p sous-ensembles est O(M. log2 p). – La complexité est croissante en fonction de p. Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 49 Partitionnement Méthode des coordonnées (récursive) • Principe : on partitionne un graphe (primal) issu d’un maillage – Plutôt que de considérer un diamètre et de classer les sommets en fonction de ce diamètre, on utilise les coordonnées des nœuds (xi,yi,zi)i=1,N du maillage. – On partitionne les nœuds du maillage suivant les xi croissants, en découpant en deux sous-ensembles de nœuds : {i : xi ≤ (xi)mediane} et {i : xi ≥ (xi)mediane} . – Ensuite, on procède récursivement, en partitionnant chaque sous-ensemble de nœuds, selon les yi, puis selon les zi, et ainsi de suite… • Complexité : – La complexité pour une partition en p sous-ensembles est O(N. log2 p). – La complexité est croissante en fonction de p. Aspects théoriques et algorithmiques du calcul réparti 50 A1-1 2014/2015 Partitionnement Méthode spectrale (1/5) • Idées à la base : – L(G) ∈ RNxN la matrice de Laplace du graphe G définie par (Lij)i,j=1,N : • -1 si (vi,vj) ∈ E, • d(vi) si i=j, • 0 sinon. – λ1≤ λ2 ≤ λ3 ≤ ... ≤ λN les valeurs propres de L(G). – λ1 = 0, λ2 est la connectivité algébrique. – q ∈ Q = {(qi) ∈ RN, qi = ± 1, ∑ qi = 0} (cas N pair) : la bissection de V en V1 et V2 est définie en affectant le sommet i à V1 si qi = +1 ou à V2 si qi = -1. – |E0| = 1/4 (q | L(G)q). Aspects théoriques et algorithmiques du calcul réparti 51 A1-1 2014/2015 Partitionnement Méthode spectrale (2/5) 7 4 1 8 5 2 Graphe 9 6 3 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 3 -1 0 -1 -1 0 0 0 0 -1 5 -1 -1 -1 -1 0 0 0 0 -1 3 0 -1 -1 0 0 0 -1 -1 0 5 -1 0 -1 -1 0 -1 -1 -1 -1 8 -1 -1 -1 -1 0 -1 -1 0 -1 5 0 -1 -1 7 0 0 0 -1 -1 0 3 -1 0 8 9 0 0 0 -1 -1 -1 -1 5 -1 0 0 0 0 -1 -1 0 -1 3 Matrice de Laplace associée Aspects théoriques et algorithmiques du calcul réparti 52 A1-1 2014/2015 Partitionnement Méthode spectrale (3/5) • Principe : – On relaxe la contrainte discrète et on obtient un problème d’optimisation avec contrainte dans RN. – Le problème devient trouver x tel que ||x||22 = N et ∑i xi = 0 qui réalise le minimum de 1/4 (x | L(G)x). – La solution est le vecteur propre x2 associé à la deuxième valeur propre λ2 (avec λ2 ≠ 0). – Soit xm la valeur médiane des composantes de x2, q est alors défini par : qi = -1 si (x2)i < xm, qi = +1 si (x2)i > xm, qi = ±1 si (x2)i = xm. Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 53 Partitionnement Méthode spectrale (4/5) • Algorithme : 1. Calculer le deuxième vecteur propre x2 de L(G). 2. Calculer xm et comparer les composantes de x2 par rapport à xm. 3. Affecter la moitié des sommets à chaque sous-ensemble. • L’effort portera sur la façon de calculer la deuxième valeur propre et le vecteur propre associé ! Aspects théoriques et algorithmiques du calcul réparti 54 A1-1 2014/2015 Partitionnement Méthode spectrale (5/5) • Éléments qualitatifs : – Si G est connexe, l’un des sous-graphes l’est aussi. – Si xm = 0, les deux sous-graphes sont connexes. Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 55 Partitionnement Méthode spectrale récursive • Principe : – On partitionne le graphe en deux (bissection) puis chaque sous-graphe est à son tour, partitionné en deux et ainsi de suite. – Le nombre de sous-graphes ainsi construit est nécessairement une puissance de deux. • Élément de complexité : – La complexité est croissante en fonction de p. Aspects théoriques et algorithmiques du calcul réparti 56 A1-1 2014/2015 Partitionnement Gloutonne (connexe) vs. Spectrale 180 160 3,5 3 140 2,5 120 100 2 Gloutonne Spectrale 80 60 1 40 20 0 Gloutonne Spectrale 1,5 0,5 0 4 16 64 256 1024 Temps calcul (s) 4 16 64 256 1024 Déséquilibrage σ/n (%) 14 12 10 8 Gloutonne Spectrale 6 4 2 0 4 16 64 256 1024 Arêtes coupées (%) Aspects théoriques et algorithmiques du calcul réparti A1-1 2014/2015 57 Partitionnement Et plus si affinités... • Algorithmes parallèles de partitionnement : parallel multilevel k-way partitioning scheme for irregular graphs. G. Karypis et V. Kumar. SIAM Review, 1999, volume 41, numéro 2, pages 278-300. • Comparaison entre heuristiques : Algorithms for graph partitioning: a survey. P.O. Fjällström. Linköping Electronic Articles in Computer and Information Science, 1998, volume 3, numéro 10. • Importance de l’aléatoire : the influence of random number generators on graph partitioning algorithms. U. Elsner. ETNA, 2005, volume 21, pages 125-133. • Quelques bibliothèques « populaires » : – – – – – – CHACO JOSTLE (Par)METIS PARTY SCOTCH ZOLTAN Aspects théoriques et algorithmiques du calcul réparti 58