• Aucun résultat trouvé

1.5 La méthode multi-niveaux

1.5.4 L’équilibrage de charge

 

 

Di f f(v)<0 si v n’est pas sur la frontière deVi

Di f f(v) =0 si v est sur la frontière deVimais son déplacement n’engendre pas de gain

Di f f(v)>0 si v est sur la frontière deViet son déplacement engendre un gain

La méthode d’affinage de Kernighan-Lin consiste à créer deux ensemblesD1etD2qui regroupent respectivement les sommets appartenant àV1etV2dontDi f f(v)>0. Pour conserver la balance, il est nécessaire que les ensembles D1 et D2 se composent de sommets de même poids. Si tel est le cas, les sommets contenusD1 sont échangés avec ceux de D2. Cette méthode d’affinage possède plusieurs versions améliorées tel que l’implémentation de Fiduccia-Mattheyses présenté dans [FM82].

Nous verrons par la suite qu’il est difficile d’appliquer cette méthode d’affinage auk-partitionnement. C’est pourquoi, nous avons implémenté notre propre méthode d’affinage reposant sur une variante de la différence de coupe de Kernighan-Lin adaptée auk-partitionnement. Cette méthode, présen-tée en section2.3.2, reprend l’idée de transfert de sommets entre les parties de la partition, mais de façon individuelle.

1.5.4 L’équilibrage de charge

En fonction de la connexité du graphe, et de la nature itérative des méthodes de bissections, il n’est pas toujours possible de créer une partition équilibrée. Or, cette contrainte est fondamentale pour la résolution du problème de partitionnement contraint. Dans ce cas, il est nécessaire de faire appel à un algorithme d’équilibrage de charge pour respecter la balance de partitionnement, même si cela est au détriment du coût de coupe.

Charles Edmond Bichot propose une méthode d’équilibrage de charge dans son livre [BS10]. Celle-ci consiste à déplacer itérativement des sommets se trouvant exclusivement sur la frontière d’une partie, dans le but de réduire le temps d’exécution de l’algorithme. Son mécanisme repose sur la différence de coupe présentée en section1.5.3, toute partie dont le poids est supérieur au poids moyen calcule leDi f f(v)pour chaquev∈Vi. Les sommets de chaque partie sont classés par

ordre décroissant de leurDi f f(v)et sont déplacés vers une partie voisine à condition que le poids de celle-ci soit toujours inférieur au poids moyen et jusqu’à ce que le poids de la partie courante soit inférieur au poids moyen. Le calcul du poids de chaque partie est répété à chaque "passes" de l’algorithme. Si un déséquilibre important persiste entre les parties, le processus est réitéré. L’algorithme s’arrête lorsque la partition est équilibrée ou lorsque aucune modification n’a eu lieu durant plusieurs "passes".

Il est évident que ce type d’algorithme n’est utilisé qu’en cas d’extrême nécessité. Une bonne implémentation des algorithmes des différentes phases du multi-niveaux , ainsi qu’une bonne convergence des algorithmes de partitionnement évite en général la nécessité d’y avoir recourt. Il est cependant important de les présenter et de les implémenter par sécurité.

Conclusion

Ce chapitre présente dans sa globalité le formalisme de simulation utilisé dans le cadre de notre recherche. L’objectif de cette thèse est d’apporter une optimisation, en terme de temps, aux simulations DEVS dans un cadre distribué. Pour cela, il est nécessaire d’optimiser la structure hiérarchique des modèles DEVS à l’aide d’outils de partitionnement de graphe présentés en détail dans cette section. La littérature offre un grand nombre de méthodes pour résoudre les deux types de problèmes de partitionnement de graphes. L’important est d’être capable de déterminer la na-ture du problème de partitionnement garantissant la meilleure restructuration de la hiérarchie de modèles.

Même si les méthodes de partitionnement qu’offre la littérature ont toutes fait leurs preuves, il est toujours possible d’apporter quelques améliorations pour garantir l’obtention d’une solution de très bonne qualité. Comme nous avons pu l’observer au cours de ce chapitre, bon nombre de méthodes sont appliquées itérativement pour répondre au problème dek-partitionnement. Or dans ce contexte, une simple application répétée de celles-ci ne garantit en rien une convergence vers l’optimum. C’est pourquoi, nous avons mis un point d’honneur à réduire l’aspect aléatoire de certaines méthodes et avons proposé des améliorations aux méthodes existantes en ce qui concerne leur paramétrisation ou leur implémentation.

La méthode multi-niveaux présentée dans ce chapitre repose principalement sur des algo-rithmes destinés à la bissection de graphe. Or, dans notre cas, nous sommes soumis au problème du k-partitionnement. Les méthodes telles qu’elles sont conçues sont soit inefficaces, soit trop coûteuses pour résoudre ce genre de problème. Nous nous sommes donc attachés à adapter les algorithmes existants pour les rendre efficaces pour notre problème de partitionnement. Le cha-pitre qui suit présente l’utilisation des méthodes de partitionnement pour répondre au problème d’optimisation des simulations distribuées DEVS, ainsi que les améliorations et les adaptations que nous avons réalisées pour garantir un partitionnement optimal.

Optimisation de la structure

hiérarchique DEVS pour une

distribution efficace et autonome

Une simulation DEVS distribuée est optimale à condition qu’un maximum de modèles soient exécutables simultanément, que leurs temps d’exécution soient relativement équivalents et que le nombre de messages en transit entre les différents nœuds de calcul soit le plus faible possible. L’optimalité d’une simulation distribuée DEVS repose sur la taille des ensembles de modèles dont la date d’activation est imminente (IMM). Or, pour être optimal, une simulation doit posséder un grand nombre de modèles au sein de ces IMM, à chaque pas de temps, dans le but d’en exécuter un maximum simultanément. De plus, pour être parfaitement optimal à chaque pas de temps, il est nécessaire que la charge de calculs contenue par les modèles de chaque IMM soit équivalente.

Dans un contexte pessimiste, il est rare d’obtenir des IMM de grandes tailles de part la na-ture réelle duta. Afin de montrer l’efficacité des méthodes de partitionnement pour créer une distribution efficace des modèles, nous partons du postula que chaque modèle qui compose la si-mulation possède untaà valeur entière. Cette hypothèse garantit une simulation synchrone et par conséquence, des IMM de grandes tailles. Cette hypothèse forte est utilisée uniquement à titre de validation de nos algorithmes, car dans la réalité, il existe des moyens permettant de manipuler des IMM de grandes tailles sans se contraindre aux simulations purement synchrones (en optant pour un contexte optimiste).

L’objectif de cette section est de présenter, en premier lieu, notre approche pour optimiser la structure hiérarchique des modèles DEVS dans une démarche d’optimisation des simulations distribuées. Cette étape passe par une restructuration de la hiérarchie à l’aide des méthodes de partitionnement de graphes présentées en section1.3. Dans un second temps, cette section présente l’ensemble des améliorations et des modifications apportées aux méthodes de partitionnement de la littérature dans le but de garantir, à moindre frais, une solution de bonne qualité. Toutes ces améliorations feront l’objet d’illustrations ou de démonstrations afin de parfaitement démontrer soit les insuffisances des méthodes actuelles soit l’adaptation au contexte DEVS.

distribuée pessimiste mais les grands résultats obtenus peuvent sans souci s’appliquer au cas opti-miste.

2.1 Optimisation de la structure hierarchique DEVS

Pour être considérée comme parfaite, une simulation distribuée àk clusters doit, en théorie, permettre une division des temps de calculs park. Or, dans la pratique, ce speedup est rarement atteignable à cause des coûts informatiques liés à la distribution et aux échanges de messages entre les noeuds de calcul. C’est pourquoi, il est important de créer des clusters homogènes et dont les modèles communiquent le moins possible avec ceux des clusters voisins. Même si le réseau informatique permet de gérer convenablement une certaine quantité de données, ce transfert de message répétitif engendre une perte de vitesse qui est défavorable au speedup.

L’optimisation des simulations DEVS distribuées repose, en premier lieu, sur cette capacité à répartir équitablement les modèles au sein des clusters et en second lieu, sur la capacité à "an-ticiper" les modèles contenus dans le IMM à chaque pas de temps. Hormis le modélisateur qui a une parfaite connaissance de son modèle, il est rarement possible de déterminer intuitivement cette répartition optimale des modèles. Dans cette thèse, nous proposons de combiner la théorie des graphes à la simulation distribuée pour parvenir à déterminer automatiquement cette réparti-tion optimale des modèles. L’idée maîtresse de notre démarche consiste à répartir équitablement l’intégralité des modèles atomiques parmi leskclusters avant le début de la simulation. Comme le coût de migration d’un modèle d’un cluster à l’autre est trop important, il nécessaire de réaliser une répartition qui soit efficace pour la majorité des pas de temps de la simulation.