Précédent : Fondements scientifiques Remonter :
Fondements
scientifiques Suivant : Programmation distribuée,
parallèle, et concurrente
Mots clés : simulation à événements discrets, simulation répartie .
Les premiers simulateurs parallèles sont apparus à la fin des années 70, mais les bases algorithmiques en ont été établies par K. M. Chandy et J. Misra en 1979. Les travaux de T. Jefferson ont ensuite permis une avancée significative dans l'utilisation du parallélisme pour simuler des systèmes généraux.
Dès 1991, nous avons eu une approche originale qui utilise le formalisme des réseaux de Pétri pour modéliser les systèmes à simuler. Parallèlement, nous nous sommes également attachés à implémenter ces méthodes, ce qui nous a permis de réaliser des prototypes comme PARSEVAL et MTOOL. Cette mise en pratique s'est également avérée riche en enseignements et en nouveaux problèmes ouverts. En particulier, l'utilisation de langages orientés objets nous a ensuite permis (PROSIT) une mise en oeuvre plus propre et plus efficace des simulateurs.
Malgré les avancées récentes, les solutions aux problèmes de placement et d'ordonnancement qui se posent dans les simulations parallèles restent très perfectibles. De manière générale, les techniques algorithmiques qui sont actuellement utilisées restent primitives et doivent être raffinées. Enfin, les nouvelles techniques que nous avons mises au point font l'objet d'implémentations qui vont peu à peu se perfectionner et, plus généralement, une meilleure compréhension de la dynamique des systèmes à événements discrets généraux est nécessaire pour concevoir des algorithmes nouveaux et plus efficaces.
Ces travaux ont notamment débouché sur une version parallèle de QNAP2 et son intégration dans MODLINE.
Le projet SLOOP poursuit dans ce domaine trois axes de recherche principaux :
Des tentatives récentes pour développer une vision algébrique des systèmes à événements discrets ont été très fructueuses. Si l'on considère par exemple un système qui contient des synchronisations mais pas de conflits entre ses activités, alors ce système peut se modéliser sous forme d'un graphe d'événements dont le fonctionnement est linéaire dans l'algèbre (max,+). La théorie classique des systèmes linéaires peut alors pratiquement être refaite dans cette algèbre « exotique ».
Mais cette vision algébrique des systèmes nous a aussi permis de mettre au point de nouveaux algorithmes massivement parallèles de simulation qui exploitent les équations d'évolution du système (qui sont linéaires) pour obtenir des performances un ou deux ordres de grandeur au-dessus de ce qui était possible avec des méthodes classiques. Au lieu de manipuler la liste des événements du système, ces algorithmes font évoluer les variables d'état du système. Il reste des problèmes spécifiques aux modèles linéaires comme le calcul des constantes qui régissent le fonctionnement du système.
Dès 1991, nous avons aussi analysé une classe de systèmes «
non linéaires » par cette approche équationnelle. Ils se
décomposent en une partie linéaire dans (max,+) et une partie
linéaire dans l'algèbre classique. Des résultats théoriques
asymptotiques de stabilité et de stationnarité ont été établis
ainsi que des algorithmes de simulation généralisant les
précédents. Ces recherches très récentes et très prometteuses
sont encore dans une phase de développement.