• Aucun résultat trouvé

Le Partitionnement dans les systèmes distribués

tribués

4.2.1

Partitionnement des Traitements

Un système distribué permet de faire concourir certaines tâches, dans l’objectif de minimiser le temps d’exécution global. Mais dans le plus grand nombre de cas, le déploiement optimal de l’application, reste à la charge du programmeur. Le partitionnement des traitements signifie définir une stratégie pour répartir les traitements sur différentes uni- tés. Ces unités doivent alors échanger des résultats ou communiquer et se synchroniser. Quand le système distribué est composé de plusieurs unités différentes, le temps d’exécution global de l’application est influé par le nombre et les durées des communications entre ces différentes unités. Moins les unités communiquent entre elles, plus le temps d’exé- cution global diminue. Dès lors, même si le partitionnement en soit est étroitement lié aux besoins applicatifs, l’objectif dans la conception de ce partitionnement consiste toujours à rendre le nombre des communica- tions minimal. D’un autre côté, tel que nous l’avons posé, le problème du partitionnement de traitement peut avoir un fondement mathématique, ou peut être ramené à un problème mathématique dans la théorie des graphes : le partitionnement de graphe. En effet un système distribué peut être vu comme un graphe composé de plusieurs nœuds formés des unités de traitement, et les arcs entre les nœuds sont les liens ou les communications entre ces unités. Nous expliquons ci-après le principe du partitionnement de graphe.

4.2.2

Le Partitionnement de graphe

Le partitionnement de graphe est une généralisation du problème de la bissection de graphe dont l’objectif est de minimiser le nombre d’arêtes entre deux sous ensembles de sommets de tailles égales[102]. De façon formelle, la bissection de graphe est définie comme suit :

Définition de la Bissection de Graphe

Soit un graphe G=(V,E) où V est l’ensemble des sommets du graphe G, et E l’ensemble des arêtes correspondantes. La Bissection de Graphe est le problème qui consiste de trouver deux partitions V1 et V2 de V

de tailles égales(ou sensiblement égales si |V| est impair), tel que l’en- semble des arêtes déconnectantes, appelé "coupe" de ces deux ensembles soit minimal[102].

Le partitionnement de graphe (PG) consiste à trouver plusieurs parti- tions en répartissant les sommets d’un graphe en plusieurs sous-ensembles de telle sorte que les sous ensembles soient égaux ou sensiblement égaux en nombre de sommets tout en minimisant les valuations des arêtes cou- pées. Ce problème est largement étudié depuis plus de trente ans et a été utilisé dans le cadre de plusieurs applications telles que : la concep- tion de circuit intégré VLSI, le calcul parallèle [35], et l’optimisation des méthodes des éléments finis [37].

Définition du partitionnement de graphe

Dans [103], le partitionnement de graphe a été définis comme suit : Soit G = (U , Q) un graphe où U est l’ensemble des sommets ui et Q est

l’ensemble des arêtes (ui, uj) non orientées. Dans certains cas, aux som-

mets du graphe peuvent être associées des coordonnées spatiales déter- minant leurs positions relatives dans l’espace d- dimensionnel Rd. Un k-partitionnement de ce graphe est une application F : U −→ [1, k] des sommets vers les sous-ensembles (appelés partitions) U1, U2, ..., Uk(F(ui) = j

si et seulement si le sommet ui est dans la partition Uj, où Siui = U et UiT Uj = φ pour tout (i , j).

L’ensemble des arêtes coupées, noté Ec, est défini comme étant l’en- semble des arêtes ayant les deux extrémités dans des partitions diffé- rentes [103].

Ec= (ui, uj) | (ui, uj) ∈ Q, P (ui) , P (uj)

Le nombre d’arêtes composant Ec, noté aussi |Ec| est appelée la cutsize

[103] ou la coupe[102] du partitionnement. Le nombre de sommets com- posant Ui, noté |U i| est appelée la taille de la partition Ui. Nous illustrons dans la Figure4.1 prise de [103] un exemple d’un 3-partitionnement du graphe avec une coupe égale à 7.

A Partition

Cut edges

FIGURE 4.1 – 3-Partitionnement avec COUPE=7

Le problème de k-partitionnement du graphe G = (U, Q) consiste à trouver un k-partitionnement tel que les tailles des partitions soient équi- librées, ie (|Ui| ≈ |U |/k), et la coupe |Ec| soit minimale[103].

Supposons une application composée de plusieurs tâches, devant être répartie de façon optimale sur un système distribué. Les sommets du graphe représentent les tâches de l’application, et les arêtes représentent les liens de communication entre les tâches. Nous utilisons une bissec- tion de graphe lorsque l’on veut répartir les tâches de façon équilibrée sur deux processeurs, et un k-partitionnement de graphe lorsque l’on veut répartir équitablement, les tâches sur k processeurs. Minimiser le nombre d’arêtes de la COUPE ou cutsize signifie pour le système distri- bué, minimiser les communications entre les différents processeurs. Ce qui induit une minimisation du temps global d’exécution de l’application. En outre, le fait que les tailles des partitions soient équilibrées, signifie que les charges des processeurs soient équilibrées pour le système distri- bué.

Il existe des cas d’applications où le graphe à partitionner est valué. Notons wi le poids du sommet vi et wij le poids de l’arête (vi, vj), dans ce

cas, la cutsize et la contrainte d’équilibrage sont redéfinies comme suit :

cutsize = X (vi,vj)∈Ec ωij (4.1) ∀p ∈ [i, k] :| X viVp ωi− 1 k |V | X i=1 ω| ≤ δ1 k |V | X i=1 ωi (4.2)

o 0 ≤ δ < 1 est le taux de tolrance

Le problème de k-partitionnement du graphe est NP-complet. Le pro- blème de bissection où l’on veut partitionner le graphe en deux, est déjà NP-complet [54]. Théoriquement un k-partitionnement peut être obtenu par une approche "diviser pour régner" en appliquant récursivement la

bissection[103].

Techniques de Partitionnement

Il existe deux grandes familles de méthodes de partitionnement de graphes. La première concerne une méthode locale qui essaie de façon itérative, de converger vers une solution meilleure en partant d’une so- lution initiale. La deuxième est plus réaliste en essayant de prendre en considération les propriétés du graphe sous-jacent.

1-Méthodes locales de partitionnement Une méthode locale est ba- sée sur une solution initiale au problème qu’elle essaie d’améliorer itérativement à chaque pas de résolution de la méthode. Ce para- digme est très utilisé en optimisation combinatoire. Les méthodes locales présentent malheureusement les inconvénients suivants : - Elles peuvent trouver un optimum local

- La qualité de la solution qu’elles engendrent dépend fortement de la solution de départ.

Il est d’usage de choisir la solution initiale aléatoirement. Et pour éviter l’optimum local, certaines méthodes (recuit simulé, algorithmes génétiques) s’appuient sur des procédés stochastiques[102].

Nous citons dans les méthodes locales : l’heuristique de Kernighan- Lin, Heuristique de Fiduccia-Mattheyses, Partitionnement avec en- sembles k-helpful, partitionnement avec recuit simulé, méthode Tabou, algorithmes génétiques.

2-Méthodes globales de partitionnement Contrairement aux méthodes locales, les méthodes globales essayent de trouver une solution au problème en se basant sur la structure ou sur les caractéristiques du problème à partitionner, sans utiliser aucune information préa- lable. Ces méthodes s’appliquent relativement bien aux domaines de calcul non structurés et peuvent être considérées comme des heuristiques de bonne qualité pour le partitionnement de réseaux hétérogènes. En effet, les méthodes issues de la théorie spectrale des graphes sont capables de traiter en même temps, le problème du découpage et de l’assignation des sommets à un processeur, le découplage de ces deux problèmes menant généralement à de faibles qualités des solutions[102]. Les méthodes globales sont gé- néralement de deux types :

- géométrique : les sommets peuvent être associés à des coordon- nées de l’espace qui sont utilisées pour partitionner le graphe (mé- thode RCB (Recursive Coordinate Bissection), méthode RGB (Re- cursive Graph Bissection))[102].

- non géométrique : le partitionnement se base sur la structure combinatoire du graphe (méthode RSB (Recursive Spectral Bissec- tion), algorithme multi-niveaux pour partitionnement de graphes)[102].

L’insuffisance de la métrique de la coupe d’arrêtes

Le partitionnement tel qu’il est pratiqué n’est pas idéal car il n’opti- mise pas toujours la bonne métrique [38]. Supposons l’exemple de deux processeurs P1 et P2, et les tâches T1, T2, T3 et T4. Dans le cas où l’applica-

tion exige que les données soient envoyées par T1 à T2, T3 et T4, la coupe

d’arêtes donne une coupe=3. Mais si les données envoyées à T3 et à T4

sont toutes les fois pareilles, le nombre de communications effectives est 2 et pas 3 ; dans ce cas, la coupe d’arête surévalue le nombre de com- munications et elle est donc insuffisante pour traiter le problème de la répartition des tâches dans un système distribué hétérogène.

T1 T2 T3 T4 Communication persistante Tâche P1 P2

FIGURE 4.2 – Exemple d’insuffisance de la métrique basée sur la coupe d’arêtes

De là, on constate que la métrique basée sur les arêtes de la coupe est insuffisante pour traiter la répartition des tâches dans un système paral- lèle hétérogène. L’utilisation du modèle standard - i.e le graphe orienté sans cycle - induit un manque d’expressivité pour les applications paral- lèles en environnement hétérogène. Ce constat s’avère d’autant plus vrai pour les environnements dynamiques.

4.2.3

Discussion

Une étude détaillée des méthodes locales et globales de partitionne- ment, a été présentée dans [102].

rimentaux [102] ont montré que certaines heuristiques sont beaucoup plus efficaces que d’autres selon la nature du graphe concerné, notam- ment celles qui n’utilisent pas la métrique basée sur la coupe d’arêtes. En effet, dans beaucoup de cas, les approches spectrales s’avèrent plus efficaces car elles essayent d’englober l’ensemble des paramètres du pro- blème posé. Globalement, l’étude du déploiement d’applications paral- lèles sur des plates-formes hétérogènes nécessite l’étude de la nature des réseaux sur lesquels elles sont installées. En effet, dans le cas de RCsF, beaucoup de particularités caractérisent ce type de réseaux, la communication est multi-sauts et l’environnement est dynamique : Dans le transfert des informations entre un capteur donné et la SB, les seuls sommets fixés du graphe induit, sont le capteur et la SB, Les nœuds intermédiaires, servant de relais d’acheminement, sont déterminés par l’algorithme de routage. Dans le prochain paragraphe, nous présentons la technique de partitionnement adaptée aux RCsF.