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