DEA Concerné : RSD
Encadrement : Françoise Baude
Courrier électronique : baude@essi.essi.fr
Téléphone : 92 96 51 08
Adresse : I3S Batiment ESSI Route des Colles BP 145 06903
Sophia-Antipolis
Laboratoire d'accueil : I3S Sophia-Antipolis, projet SLOOP
Matériel et logiciel utilisé : Unix, C, C++, PVM
Connaissances pré-requises : Cours d'algorithmique
parallèle et distribuée, PVM, C++, Simulation répartie, Aspects théoriques liés aux problèmes de partitionnement et placement de graphes de tâches
Objectifs
Ecriture d'un outil de placement d'objets actifs C++
réalisant de la simulation distribuée de systèmes à
événements discrets
Description du sujet
L'objectif central du projet SLOOP est de
développer des méthodes et
des outils permettant l'utilisation efficace de machines multi-processeurs
pour la simulation de systèmes à événements discrets.
La réalisation
de cet objectif implique la poursuite de recherches de haut niveau dans
les domaines des langages à objets parallèles, des nouvelles
méthodes de simulation et de la communication dans les architectures
parallèles.
Le point clé d'une simulation efficace d'un réseau de files d'attente
dépend du placement des différents objets actifs sur les
processeurs disponibles. Ces objets actifs représentent des serveurs
ou des clients leur demandant des services.
Pour ce faire, le travail consistera
- tout d'abord à construire (le plus
automatiquement possible) un graphe pondéré par les coûts de service
et les coûts de demande de service, représentant les interactions entre
ces objets. Ce graphe pourra être construit à l'aide d'annotations
du code C++ données par le programmeur.
- Ensuite, il faudra développer un algorithme de partitionnement de
ce graphe en groupes (clusters) d'objets étant donné le nombre de
processeurs disponibles et la vitesse des liens de communication les connectant.
L'objectif de ce regroupement est de minimiser les coûts de communication
tout en utilisant au mieux la puissance de calcul disponible.
- Finalement, comme le graphe initial construit peut ne pas refléter
tout le comportement de la simulation (qui est probabiliste, et donc
quelque peu imprévisible), il faut prévoir un mécanisme permettant
de réactualiser le graphe en cours de simulation. Il est alors envisageable
de stopper la simulation, de procéder à un nouveau partitionnement qui impliquera peut-être
le déplacement de certains objets, puis de poursuivre la simulation.