R´epartir ´equitablement la charge de calcul entre les sous-domaines tout en minimisant les
interfaces peut, dans certaines configurations, ˆetre une probl´ematique complexe. Nous trouvons
dans la litt´erature des outils de partitionnement de maillage optimis´e permettant de r´esoudre cette
probl´ematique. Nous pouvons citerMeTiS[17],Scotch [18] etPampa[19]. Ces outils s’appuient
sur des heuristiques de r´esolution. La plupart des ces heuristiques repose sur une mod´elisation du
probl`eme initial sous forme de graphe [20]. Nous proposons de pr´esenter les graphes [21] dans
la sous-section 2.3.1. Nous pr´esenterons ensuite les techniques de partitionnement de graphe en
CHAPITRE 2. CONTEXTE 23
sous-section 2.3.2. Le partitionnement multi-crit`eres sera ´etudi´e en sous-section 2.3.3. Enfin, en
sous-section 2.3.4 nous introduirons les techniques de repartitionnement.
2.3.1 Le graphe : un mod`ele abstrait
Les graphes sont des mod`eles abstraits tr`es utilis´es dans de nombreux domaines. Leur g´en´ericit´e
permet de les adapter `a des probl´ematiques tr`es diff´erentes. Les graphes pr´esentent l’avantage d’ˆetre
`a la fois concis et exhaustifs. En effet, un graphe est un ensemble de sommets et d’arˆetes. Un lien
peut ˆetre orient´ee, c’est-`a-dire unidirectionnel, nous parlons alors d’arc. Les sommets comme les
arˆetes permettent de repr´esenter des objets et leurs interactions. Par exemple, en informatique, un
graphe peut repr´esenter le flot d’instructions d’une application o`u chaque sommet repr´esente une
instruction et chaque arˆete repr´esente une d´ependance. Il est commun´ement appel´e graphe de flot
de contrˆole.
Les concepts de sommets et d’arˆetes, orient´ees ou non, permettent de mod´eliser des donn´ees
de simulation, des instructions, des processus, etc. Cette mod´elisation peut ˆetre affin´ee `a l’aide des
pond´erations des sommets et des arˆetes. En effet, la pond´eration des graphes permet de diff´erencier
deux sommets entre eux ou deux arˆetes entre elles, en leurs attribuant des poids diff´erents. `A titre
d’exemple, nous pourrions diff´erencier des sommets du graphe de flot de contrˆole en fonction du
coˆut en temps d’une instruction.
Dans le contexte du calcul haute performance, les graphes peuvent ˆetre utilis´es pour mod´eliser
des charges de calcul et des donn´ees. La r´epartition de ces charges de calcul et de ces donn´ees peut
ˆetre obtenue `a l’aide d’algorithmes de partitionnement de graphe.
2.3.2 Algorithmes de partitionnement de graphe
Le partitionnement de graphe est un probl`eme NP-Difficile [22]. En effet, le nombre de
parti-tionnements possibles pour un graphe donn´e est exponentiel. Le partitionnement peut ˆetre soumis
`a des contraintes initiales. En calcul haute performance, la difficult´e d’un partitionnement r´eside
dans deux probl´ematiques antagonistes. La premi`ere consiste `a trouver un partitionnement le plus
´equilibr´e possible. La seconde consiste `a minimiser le temps de restitution du partitionnement.
Parmi les contraintes initiales, nous avons, la plupart du temps, l’´equilibre en nombre de sommets
par partie.
Plusieurs heuristiques de partitionnement peuvent ˆetre trouv´ees dans la litt´erature.
Globale-ment, les algorithmes propos´es cherchent `a minimiser la coupe (la taille des interfaces) dans
le respect des contraintes initiales. Nous pouvons par exemple citer la m´etaheuristique
multi-niveau [23][24][25]. Des approches parall`eles de cette heuristique ont ´et´e propos´ees [26] pour
r´eduire le temps de restitution.
Les heuristiques sont nombreuses et quelques unes ont ´et´e impl´ement´ees dans des outils de
partitionnement de graphe. Parmi ces outils, nous pouvons citer MeTiS [17] etScotch [18]. Ces
deux outils sont dot´es d’une version parall`ele, respectivement ParMeTiS [27] etPT-Scotch[28],
l’objectif ´etant de r´eduire le temps de partitionnement.
La figure 2.13 donne un exemple de partitionnement ´equilibr´e en nombre de sommets obtenu
avec MeTiS [17]. Le partitionnement est une probl´ematique complexe. Lorsque les contraintes
initiales sont multiples, les algorithmes de partitionnements doivent consid´erer plusieurs crit`eres.
Nous parlons de partitionnement multi-crit`eres.
CHAPITRE 2. CONTEXTE 24
FIGURE2.13 – Exemple d’un partitionnement en 16 parties, ´equilibr´e en nombre de sommets.
2.3.3 Partitionnement multi-crit`eres
Une partition est dite valide lorsque celle-ci respecte la totalit´e des crit`eres. Une partition de tr`es
bonne qualit´e sur pratiquement tous les crit`eres mais ne respectant pas la contrainte fix´ee pour un
seul et unique crit`ere ne sera pas jug´ee valide. En revanche, une partition de qualit´e passable sur tous
les crit`eres mais respectant toutes les contraintes sera jug´ee valide. Les contraintes fix´ees d´ependent
du probl`eme `a r´esoudre. Un non-respect de l’une de ces contraintes peut avoir des cons´equences
dramatiques. Par exemple, si l’une de ces contraintes concerne la consommation m´emoire d’une
application, une violation de la contrainte pourrait entraˆıner l’interruption de l’application.
La figure 2.14 pr´esente des exemples de partitionnements d’un graphe pond´er´e aux propri´et´es
tr`es diff´erentes. Le poids de chaque sommet est inscrit au centre du sommet. Dans notre cas, les
arˆetes ont toutes le mˆeme poids. Nous souhaitons obtenir une partition ´equilibr´ee `a la fois en
nombre de sommets et en poids. La partition de la sous-figure 2.14a est ´equilibr´ee en nombre de
sommets (4 par partie). Nous observons une coupe relativement peu ´elev´ee avec 5 arˆetes coup´ees.
En revanche, l’´equilibre en poids n’est pas du tout respect´e, avec 30 d’un cˆot´e et seulement 8 de
l’autre. La sous-figure 2.14b pr´esente un partitionnement ´equilibr´e en poids (19 par partie). Nous
observons une coupe encore meilleure avec seulement 4 arˆetes coup´ees. Cependant, l’´equilibre en
nombre de sommets n’est absolument pas respect´e puisque nous avons 2 sommets d’un cˆot´e et 6 de
l’autre. Enfin, l’´equilibre en nombre de sommets et en poids est obtenu avec le partitionnement de
la sous-figure 2.14c. En revanche, la coupe est plus ´elev´ee que les partitionnements pr´ec´edents avec
8 arˆetes coup´ees, soit 2 fois plus que le partitionnement pr´ec´edent. De plus, l’un des sous-graphes
n’est pas connexe. Cet exemple illustre la difficult´e de partitionner selon plusieurs crit`eres tout en
minimisant la coupe.
Le partitionnement multi-crit`eres n´ecessite d’autres heuristiques que le partitionnement
mono-crit`ere [29][30][31][32]. Par ailleurs, le partitionnement multi-mono-crit`eres n’est pas support´e par tous
les outils de partitionnement. En effet, contrairement `a MeTiS [17], Scotch [18] ne g`ere pas le
partitionnement multi-crit`eres.
Lorsque la r´epartition de la charge de calcul ´evolue au cours du temps, la validit´e de la
parti-tion peut ˆetre remise en cause et le calcul d’une nouvelle partiparti-tion peut alors ˆetre envisag´e. Nous
CHAPITRE 2. CONTEXTE 25
10 9 3
4 1 2
7 2
(4, 30)
(4, 8)
(a) Exemple d’un
partitionne-ment ´equilibr´e en nombre de
sommets.
10 9 3
4 1 2
7 2
(2, 19)
(6, 19)
(b) Exemple d’un
partitionne-ment ´equilibr´e en poids.
10 9 3
4 1 2
7 2
(4, 19)
(4, 19)
(c) Exemple d’un
partitionne-ment ´equilibr´e en nombre de
sommets et en poids.
FIGURE2.14 – Exemples de partitionnements.
proposons donc maintenant d’introduire les algorithmes de repartitionnement.
2.3.4 Algorithmes de repartitionnement
Le calcul d’une nouvelle partition pose une probl´ematique de coˆut de migration dans le
cas o`u le partitionnement influe sur la r´epartition des donn´ees de simulation. En effet,
lors-qu’un sommet change de partie, les donn´ees de simulation correspondant `a ce sommet doivent
ˆetre transf´er´ees. Cette probl´ematique de coˆut de migration de donn´ee a ´et´e ´etudi´ee dans la
litt´erature [33][34][35][36][37]. Cette contrainte suppl´ementaire complique s´erieusement le
par-titionnement d’un graphe lorsque ce dernier est tr`es d´es´equilibr´e. Nous devons dans certains cas
faire un compromis entre un partitionnement de moins bonne qualit´e et un coˆut de migration plus
important.
Les outils de partitionnement de grapheParMeTiS[27] etScotch[18] proposent une m´ethode
de repartitionnement en prenant comme param`etre la partition pr´ec´edente.
No documento
Conversor DC/DC de elevada eficiência
(páginas 61-64)