Projet Sloop

previous up next contents
Précédent : Logiciels Remonter : Projet SLOOP, Simulation, Langages à Suivant : Actions industrielles



Résultats nouveaux

Simulation

  Mots-clés : langage à objets, parallélisme, simulation, simulation répartie


Résumé : Les recherches du projet en simulation de systèmes à événements discrets portent à la fois sur le développement de nouvelles méthodes pour la simulation de grands systèmes (simulation équationnelle notamment) et sur la construction d'un environnement de simulation (PROSIT) intégrant ces méthodes et permettant l'écriture et l'exécution efficaces de simulations de systèmes complexes en environnements mono ou multiprocesseurs.


Simulation mixte : Prosit/équationnelle



Participants : Bruno Gaujal , Alain Jean-Marie , Günther Siegel


Nous avons appliqué les techniques mixtes de simulation (qui utilisent un moteur classique et un noyau équationnel) pour simuler des réseaux ATM formés de plusieurs commutateurs. Cette technique nécessite une modélisation par réseaux de Pétri non-ambigus et a été automatisée, pour permettre une utilisation des simulateurs pour simuler de gros réseaux sans écrire beaucoup de code.

Nous obtenons une facilité d'utilisation et des performances prometteuses qui permettent d'espérer une utilisation plus large de ces techniques.

Analyse structurelle des systèmes à événements discrets



Participants : François Baccelli [projet MISTRAL], Bruno Gaujal , Geert Jan Olsder(univ. Tech. de Delft (Pays-Bas)) , Stéphane Pérennes


Nous avons poursuivi les travaux achevés en 1996 sur les réseaux de Pétri ordinaires pour traiter le cas des réseaux valués. Ceux-ci sont plus difficiles à analyser, car mêmes des classes simples comme les graphes d'événements restent largement non résolues.

Nous avons introduit la notion de réseaux continus, où le marquage n'est plus entier et les routages sont remplacés par des taux de passage. Nous montrons que dans le cas général, le comportement du réseau continu, qui est plus simple à analyser que celui du réseau discret originel, constitue une borne supérieure. De plus, la présence d'interblocages dans le réseau continu implique celle d'interblocages dans le réseau discret associé. Cette remarque permet de mettre au point des techniques algorithmiques de détection des famines et des interblocages et aussi, dans certains cas, de déterminer un contrôle du réseau qui permet de les éviter [55].

Par ailleurs, en collaboration avec l'université de Delft (Pays-Bas), l'analyse de la classe de systèmes à événements discrets obéissant à des règles de transition exprimées sous une forme dite (min,max,+) a été menée [OP]. Ces sytèmes généralisent les graphes d'événements associés à des transitions de type (max,+). Les résultats sont valables pour des transitions déterministes ou stochastiques, et la conjecture dite de << dualité >> est avérée. Ainsi il apparaît que le comportement de tels systèmes est semblable à celui des systèmes (max,+). Les résultats reposent essentiellement sur les propriétés des opérateurs non-linéaires non-expansifs (qui diminuent ou conservent la norme L1). Dans le cas déterministe la périodicité de tels opérateurs est étudiée dans [70].

Contrôle optimal des systèmes à événements discrets



Participants : Eitan Altman , Bruno Gaujal , Arie Hordijk


Dans un article datant de 1985, << extremal splitting of point processes >>, B. Hajek a introduit une propriété de convexité appelée multimodularité. Cette notion est définie pour les fonctions sur les points entiers d'un espace euclidien multidimensionnel. La multimodularité est une propriété clef pour le contrôle optimal dans les réseaux de file d'attente. Dans une série de quatre articles, nous présentons et caractérisons la multimodularité et nous montrons comment elle s'applique au contrôle optimal de files d'attentes ou de systèmes (max,+).

Cette série est amenée à s'étoffer pour former toute une étude exhaustive de l'utilisation de cette approche dans le contrôle des réseaux de télécommunication, en particulier pour améliorer la qualité de service, (limitation des rafales de trafic, taux de service équitable pour l'ensemble des sessions).

Dans [62], qui constitue la partie théorique de notre étude, nous montrons la relation entre la convexité et la multimodularité. Nous obtenons ainsi des résultats généraux pour des coûts actualisés ou moyens qui sont des compositions convexes croissantes de fonctions multimodulaires. En particulier, nous construisons des bornes inférieures pour la valeur du problème actualisé et nous montrons que le problème moyen est minimisé par une séquence équilibrée. Ceci est fait pour les problèmes avec un objectif unique et est ensuite étendu au cas avec objectifs multiples.

Dans [53,60], nous avons montré l'intérêt de l'utilisation du formalisme (max,+) d'un réseau qui forme un graphe d'événement. Cela permet de démontrer que le temps de séjour moyen d'un client dans le réseau, ainsi que la charge moyenne du réseau sont des fonctions multimodulaires par rapport à la suite des dates d'arrivées. Nous utilisons ensuite les théorèmes généraux introduits dans [62] pour construire le contrôle d'admission optimal.

Dans [54,61], nous donnons une vue d'ensemble de la notion de séquences équilibrées ainsi que plusieurs caractérisation de cette notion. Nous prouvons aussi certaines de leurs propriétés les plus intéressantes. Dans la deuxième partie de ce travail, nous montrons le lien avec la multimodularité et nous utilisons ces deux notions à priori assez éloignées pour optimiser le routage dans des réseaux de file d'attente. En particulier, de nouveaux résultats, comme l'optimalité du routage cyclique dans des systèmes homogènes très généraux (G/G/1), deviennent de simples corollaires de cette théorie.

Finalement, dans [63], on considère le problème dual : le problème des absences du serveur. Ici, le contrôle n'a plus lieu sur les arrivées mais sur le serveur, sans information sur l'état du système. Le problème dual du problème multidimensionnel du routage est celui du << polling >>, où un même serveur est responsable de plusieurs files d'attentes. Ces cas sont traités en utilisant la même méthodologie que précédemment avec des propriétés stationnaires ergodiques.

Enfin, nous avons étudié dans [29], le problème d'allocation d'une ressource en exclusion mutuelle entre deux processus pour minimiser la période d'inactivité de la ressource.

Simulation orientée objets en environnement réparti



Participants : Philippe Mussi , Günther Siegel , Tania Jiménez , Laurent Villefranche


Nous avons poursuivi les recherches et les développements autour de l'environnement séquentiel PROSIT. Le prototype est actuellement en cours d'industrialisation par la société Simulog.

Nous avons spécifié et implémenté l'extension distribuée du modèle de simulation et conçu un modèle d'exécution associé. Dans ce modèle, le programmeur crée dynamiquement des sous-systèmes (cluster dans la terminologie PROSIT) et distribue ses composantes parmi eux. Les objets actifs interagissent alors par des appels distants et peuvent migrer entre clusters. Sur chaque sous-système, un noyau est responsable de la progression du temps et collabore avec les autres noyaux afin de conserver une cohérence globale. Divers protocoles de synchronisation ont été implémentés ; pour plus de détails à propos de l'environnement PROSIT voir la thèse de G. Siegel [15].

Par ailleurs, PROSIT est utilisé pour la simulation du trafic routier (cf. section [*]) dans le cadre du projet HIPERTRANS.

Langages et exécutifs pour la programmation à objets parallèles

Mots-clés : programmation parallèle à objets, réutilisation, sémantique, environnement interactif, C++, Eiffel, Java, répartition, réseaux de stations, communications, équilibrage de charge, placement, partitionnement


Résumé : L'objectif général de cette action est de faciliter la programmation parallèle et/ou distribuée dans le cadre des langages asynchrones et impératifs, plus particulièrement en utilisant le paradigme objet.

Appliquer nos travaux au domaine de la simulation à événements discrets constitue une orientation privilégiée, l'objectif étant d'utiliser le potentiel de réutilisation des langages parallèles à objets afin de construire des simulateurs parallèles qui soient génériques.

Globalement, quatre grands axes complémentaires se dessinent :
- programmation à objets, parallélisme et distribution,
- sémantiques et preuves pour ces langages,
- supports de communication,
- placement et équilibrage de charge.


Programmation à objets, parallélisme et distribution



Participants : Denis Caromel , Emmanuel Lety , Jonathan Poole , Yves Roudier , David Sagnol , Julien Vayssière


La réutilisation est un objectif essentiel de cet axe : nous souhaitons être capables de transformer un système séquentiel en un système parallèle, et pouvoir contrôler et adapter facilement le taux de parallélisme en fonction de l'architecture cible.

Un autre principe est de s'appuyer autant que possible sur une sémantique formellement définie, notamment dans la perspective de formaliser la réutilisation et la transformation de programmes (cf. section [*] ci-dessous).

Globalement, la stratégie adoptée consiste maintenant à réaliser tous les développements pratiques en C++ et Java, les recherches qui visent à utiliser des techniques formelles étant réalisées autour des langages Eiffel, Eiffel// et Java.

C++// :

Nous poursuivons actuellement la définition et l'implémentation d'un langage parallèle basé sur C++ (C++//) [33] (http://www.inria.fr/sloop/c++ll/ ). Ce système s'appuie sur les travaux antérieurs et actuels menés sur Eiffel//. Il reprend en particulier les objectifs de réutilisation et de transformation de programmes, et met en oeuvre des techniques développées et expérimentées pour Eiffel// (polymorphisme entre objets et processus, attente par nécessité, bibliothèques facilitant la programmation des processus). En collaboration avec le groupe de travail nord américain HPC++, et en particulier avec Carl Kesselman (Information Sciences Institute, ISI, Los Angeles), nous avons ajouté au système la possibilité de créer des objets actifs légers, par le biais du système Nexus. D'autre par, C++// est actuellement porté sur la machine Origin 2000 (64 processeurs) du Centre Charles Hermite à l'INRIA Lorraine. Une démonstration du système a été présentée lors de la conférence SC'97 (SuperComputing) sur le stand INRIA.

Le rapprochement entre les aspects programmation à objets parallèles et bibliothèques de communications se poursuit activement : sur certaines plate-formes nous utilisons maintenant la bibliothèque SCHOONER développée dans le projet (voir ci-dessous Section [*]).

Java// :

De nouveaux travaux, complémentaires à ceux réalisés autour de C++, ont débuté dans le cadre cette fois du langage Java.

Java// [86,90] ( http://www.inria.fr/sloop/javall/ ) reprend le modèle de base utilisé pour C++//, mais intègre de nouvelles possibilités liées aux aspects dynamiques du langage, à son intégration avec Internet, ainsi qu'à de nouvelles techniques mises en oeuvre. L'absence d'héritage multiple, les contrôles de type très stricts de Java, ainsi que ses mécanismes de protection mémoire, nous ont amenés à concevoir des mécanismes originaux, liés en particulier à la réification et à l'utilisation du concept d'interface du langage. Parmi les nouveaux principes introduits pour la bibliothèque Java//, on peut citer en particulier :
- les métaobjets transparents,
- la réutilisation et extension de classes existantes par le biais des interfaces Java,
- la génération dynamique de stubs,
- la réification à l'instanciation,
- les objets distants transparents,
- le polymorphisme entre objets locaux et distants,
- les bibliothèques de synchronisation.

Notons que Java// ne nécessite aucune extension du langage Java : le système est écrit en Java pur, et l'utilisateur programme lui aussi en Java standard.

Réutilisation, transformation, et sémantique

 

Participants : Isabelle Attali , Denis Caromel , Sidi Ould Ehmety , Romain Guider , Marjorie Russo


Dans le cadre de la parallélisation des programmes à objets, nous travaillons à la formalisation des langages, des modèles à objets actifs, et des transformations associées à la parallélisation. À terme, l'objectif consiste à prouver formellement l'équivalence entre un programme séquentiel et sa version parallélisée, ainsi qu'à détecter automatiquement ou semi-automatiquement les parallélisations possibles.

Nous avons dans les années précédentes défini les sémantiques des langages Eiffel, Eiffel// et SISAL [16], et poursuivons ces travaux selon les axes décrits ci-dessous.

Propriétés formelles du modèle Eiffel// :

Nous avons caractérisé et prouvé des propriétés de la sémantique du modèle Eiffel//, e.g. l'organisation des objets en sous-ensembles disjoints (sous-systèmes), la séquentialité de l'exécution à l'intérieur d'un sous-système. Ces propriétés ont pour but, d'une part de prouver la correction partielle de la sémantique et, d'autre part, de servir de base pour la preuve d'équivalence entre programmes séquentiels et parallèles [14,36].

Parallélisation de programmes à objets :

Nous étudions comment paralléliser des programmes à objets de manière automatique ou semi-automatique ; il s'agit de découvrir, grâce à des techniques d'interprétation abstraite, des propriétés du graphe d'objets qui permettront de comprendre comment introduire des activités concurrentes dans des programmes Java. À partir d'une sémantique opérationnelle du langage Java, nous définissons une abstraction des règles et des structures sémantiques utilisées, afin d'obtenir ainsi une sémantique abstraite, premier pas vers un grand nombre d'analyses de formes. Ces analyses statiques permettront de dériver divers outils d'aide à la programmation.

Sémantique du langage Java :

Nous avons décrit une sémantique formelle d'un sous-ensemble de Java. Pour décrire la sémantique des concepts d'objets et d'héritage, nous avons utilisé une sémantique de type big-step. Cependant, pour la sémantique des aspects parallèles de Java, nous sommes passés à une sémantique small-step, indispensable pour décrire les actions concurrentes des threads et l'entrelacement. À partir de cette sémantique, nous dérivons un interprète du langage qui permet de visualiser, en cours d'exécution, les objets, les threads, leurs attributs et leur activité [72,88].

Supports de communication pour la distribution

 

Participants : Françoise Baude , Olivier Dalle , Nathalie Furmento , Michel Syska


Nos travaux dans le domaine des communications et des supports d'exécution pour applications distribuées interviennent au niveau d'une bibliothèque à objets pour les communications (SCHOONER), et selon le principe des fichiers virtuels des systèmes d'exploitation (MPCFS).

SCHOONER :
Nous continuons le développement de la bibliothèque de classes SCHOONER [65,87] ( http://www.inria.fr/sloop/schooner/ ) qui sert de support d'exécution distribuée pour des applications écrites directement en C++, comme PROSIT ou avec des langages de plus haut niveau comme C++//. Nous avons amélioré la version fournissant des processus légers au moyen d'une interface avec PM2, et nous travaillons à une interface au dessus de Nexus. Ce travail nous a notamment permis de bien isoler dans SCHOONER les fonctionnalités originales de la bibliotèque de celles directement liées au support de communication et de processus légers utilisé. SCHOONER permet de faire appel à des outils d'aide au placement dynamique de nouveaux processus, tel DLB décrit en § [*].

Afin de suivre le déroulement d'une application basée sur SCHOONER, un outil graphique de présentation post-mortem des différents événements qui sont tracés pendant l'exécution a été développé [79].

MPCFS :
Les schémas de communication multipoints, et en particulier la diffusion (broadcast, multi-cast), qui sont souvent utilisés par les applications distribuées, ne sont malheureusement pas disponibles au sein des systèmes UNIX. Ils doivent donc être émulés, de façon peu efficace, au niveau utilisateur, généralement par des bibliothèques de communication telles que PVM ou MPI.

Afin de résoudre ce problème d'efficacité, nous avons conçu MPCFS (Multi-Point Communication FileSystem) [64], un système de fichiers virtuel pour systèmes UNIX dont l'objectif est de fournir aux utilisateurs, au travers d'une interface très simple, un ensemble de mécanismes permettant la réalisation de communications multi-points.

Un prototype du système de fichiers MPCFS a été réalisé pour le système Linux [80,82].

Placement et équilibrage de charge

 

Participants : Olivier Dalle , Jérome Galtier , Michel Syska , Jane-Elise Tanzy


 Répartition dynamique de charge dans les réseaux de stations :

Nous avons conçu et développé une plate-forme de répartition dynamique de charge pour applications s'exécutant sur réseaux de stations de travail (DLB, Dynamic Load Balancing), dont un des buts est de permettre l'étude expérimentale de diverses stratégies de répartition de charge [89]. L'outil a donc été conçu de façon à pouvoir aisément changer les différentes briques qui constituent la stratégie (politique d'information, de transfert, de localisation, ...).

Un des services proposés aux applications clientes de DLB (e.g. PROSIT au travers de SCHOONER) est l'obtention d'une liste de machines dont la charge observée est compatible avec les besoins d'un nouveau processus. Ces besoins sont exprimés par le demandeur; ils sont actuellement formulés en termes de poids relatifs à accorder aux différents indicateurs de charge (ressources physiques principales telles le CPU, la mémoire, le réseau).

D'autre part, nous avons poursuivi le développement de LoadBuilder, plate-forme d'expérimentation distribuée, dont l'objectif est de faciliter la mise au point d'indicateurs de charge dans les environnements hétérogènes tels que les réseaux de stations de travail. Ce système a aussi été utilisé lors de l'évaluation des performances de communication des différents réseaux de communication du cluster de machines dédiées au parallélisme du centre de calcul parallèle de l'INRIA Sophia Antipolis (Myrinet, Ethernet, FastEthernet) [81].

Partitionnement pour les maillages tridimensionnels :

Une approche originale pour le partitionnement des maillages 3D a été étudiée, notamment pour le calcul numérique parallèle par éléments finis. Cette technique s'applique aux sous-domaines définis par leur frontière sous forme de polyèdre régulier. Elle s'appuie sur le maillage des interfaces entre les sous-domaines avant le maillage de l'intérieur du domaine proprement dit.

Dans l'optique d'une utilisation industrielle sur le solveur de mécanique des fluides N3S, développé par EDF, un préprocesseur utilisant cette méthode a été conçu et étudié. La réduction de la taille de mémoire requise pour la phase de génération des données a permis d'obtenir des accélérations super-linéaires [50], voire de rendre accessibles des calculs autrefois impossibles. De plus, la qualité des données produites laisse entrevoir des perspectives nouvelles en matière de performance [49].

Puisque ce concept améliore la régularité et la taille des interfaces au détriment de l'équilibrage de charge, nous avons proposé et étudié un algorithme rapide, efficace, linéaire en la taille des données d'entrée qui corrige ce défaut. Son utilisation a été testée sur des exemples industriels, et les performances comparées à celle obtenues en utilisant d'autres heuristiques [51].

Algorithmique des communications et du parallélisme

Mots-clés : algorithmique parallèle, parallélisme, réseaux d'interconnexion, communications globales, communications optiques, multiplexage en longueur d'onde, routage


Résumé : Les travaux décrits dans ce paragraphe concernent l'algorithmique parallèle et distribuée en particulier celle reliée aux communications. Nos travaux suivent l'évolution des technologies allant du parallélisme vers le distribué et plus récemment les télécommunications. Nous avons obtenu en particulier des résultats dans les réseaux classiques et optiques.


Propriétés structurelles des réseaux



Participants : Jean-Claude Bermond , Éric Darrot , Olivier Delmas , Afonso Ferreira , Paul Paulraja , Stéphane Pérennes , Michel Syska


Nous donnons ici les résultats obtenus sur diverses propriétés du réseau qui peut interconnecter soit les processeurs d'une machine parallèle, soit les stations d'un réseau distribué ou encore les noeuds d'un réseau de télécommunications. Les techniques utilisées sont celles des mathématiques discrètes. Il s'agit là de recherche de base ; l'acquis obtenu sur ce sujet dans le passé par les membres du projet s'est révélé très utile pour répondre aux problèmes posés par la société Alcatel-Espace (voir section [*]), et pour étudier les problèmes posés par l'utilisation des nouvelles technologies comme ATM ou les liaisons optiques.

Dans le cadre de l'étude des réseaux point-à-point, nous avons établi diverses propriétés des réseaux « logarithmiques » (réseaux de degré borné et de diamètre logarithmique en le nombre de sommets). Par exemple, nous avons montré dans [18,19] que les réseaux Butterfly se décomposent en cycles (circuits) hamiltoniens ; l'extension aux réseaux de de Bruijn est en cours avec P. Paulraja. Dans [24], nous avons déterminé l'excentricité moyenne des graphes de de Bruijn. Nous avons aussi montré dans [23] l'existence de dimensions et d'un comportement semblable à l'hypercube pour des réseaux appelés << graphes de Knodel généralisés >> qui existent pour un nombre de sommets quelconques.

Un réseau d'interconnexion par bus est constitué d'un ensemble d'éléments de calcul (les processeurs) et d'un ensemble d'éléments de communication (les bus). Chaque bus fournit un lien de communication partagé par deux ou plusieurs processeurs. Ces réseaux sont une généralisation des réseaux point-à-point (où un bus relie seulement deux processeurs). Les problèmes de construction ou de topologies sont traités dans [20]. Les bus permettent de modéliser les réseaux d'interconnexion optiques (voir [32,42] pour les nombreuses architectures à base d'étoiles passives optiques), ou les réseaux de stations de travail de type multi-cast.

Enfin, dans [30], est résolue une conjecture concernant le nombre maximum de stations d'un réseau radio qu'on peut interconnecter avec un nombre limité de fréquences.

Communications globales



Participants : Bruno Beauquier , Jean-Claude Bermond , Éric Darrot , Olivier Delmas , Afonso Ferreira , Nausica Marlin , Stéphane Pérennes , Michel Syska , Ugo Vaccaro , Sandrine Vial


Nous nous sommes intéressés à l'étude des communications dans les divers types de réseaux considérés ci-dessus, et tout particulièrement aux communications dites globales (ou structurées ou collectives). Deux paradigmes de ces communications sont la diffusion (broadcasting ou One-To-All), protocole qui consiste à envoyer un message à tous les noeuds à partir d'un initiateur unique, et l'échange total (gossiping ou All-To-All), protocole qui consiste à effectuer simultanément une diffusion à partir de tous les processeurs. Les résultats obtenus dépendent du type de réseau sous-jacent mais aussi d'autres contraintes telles que  :
- le mode de commutation : commutation de messages (store-and-forward), dans lequel un message est stocké dans les noeuds intermédiaires avant d'être renvoyé ou mode commutation de circuits,
- le nombre de ports de communication qui peuvent être utilisés en même temps dans un commutateur,
- ou bien encore la taille maximale autorisée des paquets transmis.

Ces sujets sont traités en détail dans les thèses d'Éric Darrot [12], et d'Olivier Delmas [13]

Mode de commutation de messages

Dans << Lower Bound on Broadcasting Time and Distance Properties on Networks >> (soumis à SIAM par S. Pérennes), nous donnons une méthodologie générale pour trouver des bornes inférieures sur le temps de la diffusion. La méthode s'applique en particulier aux cas des réseaux de degré borné, ainsi de nouvelles bornes sont obtenues pour les réseaux de de Bruijn et Butterfly; une variante de cette méthode est appliquée dans [45] au cas de communications systoliques. De plus, de nouveaux protocoles de diffusion et d'échange total asymptotiquement optimaux sont obtenus, dans [31] pour les réseaux logarithmiques, et dans [25] pour les graphes de Cayley hiérarchiques.

Dans le cas de messages de longueur quelconque, un travail en cours démontre que, dans le cas d'un réseau complet, il est nécessaire de découper les messages en paquets afin d'optimiser le temps de transmission ; il permet aussi de présenter une famille de protocoles optimaux [BDP].

Dans le cas de messages longs, le message est scindé en paquets qui sont envoyés aux destinataires en utilisant la technique dite de « pipeline ». De plus, pour la diffusion, on utilise des arbres couvrants, deux à deux arc-disjoints, de faible profondeur. L'existence de tels arbres est prouvée par construction dans [12] pour les grilles toriques d-dimensionelles.

Les protocoles usuels d'échange total dans le mode commutation de messages autorisent la concaténation des messages. Pour certaines applications, cette hypothèse n'est pas réaliste ; nous avons étudié le problème lorsque la taille maximale des paquets est fixée, sous les deux hypothèses 1-port et $\Delta$-ports (les routeurs peuvent communiquer sur tous leurs ports en même temps). Dans le premier cas nous avons donné des protocoles optimaux d'échange total ([22]) et déterminé le nombre minimum de communications nécessaires ([21]). Dans le cas $\Delta$-ports le problème résolu l'an dernier nous a amenés à étudier les graphes de Cayley qui admettent un automorphisme particulier que nous avons appelé une rotation complète (dans le cas de la grille torique 2-dimensionnelle cet automorphisme correspond à la rotation de $\frac{\pi}{2}$ dans le plan)).

Mode de commutation de circuits

Ce mode est celui classiquement utilisé dans les réseaux de télécommunications, mais aussi par le routage appelé wormhole utilisé sur la génération actuelle de machines parallèles (par exemple le Cray T3E, où le réseau d'interconnexion est une grille torique 3-dimensionnelle, et les commutateurs Myrinet). Dans ce mode, à chaque étape, les communications ont lieu le long de chemins arc-disjoints.

Dans un graphe G de degré maximum $\Delta$, sous l'hypothèse $\Delta$-ports, le nombre maximum de noeuds qui peuvent être informés en k étapes est $(\Delta+1)^k$. Ainsi on peut espérer obtenir un algorithme de diffusion procédant en $\log_{\Delta+1}N$ étapes, à opposer aux D étapes nécessaires en mode commutation de messages (qui constituait le mode de communication dans la génération précédente de machines).

De tels algorithmes, optimaux, ont été exhibés en utilisant des méthodes issues de la théorie des codes correcteurs d'erreurs, pour la diffusion dans les grilles toriques d-dimensionnelles [26], et dans l'hypercube (thèse de T. Kodaté et travaux en cours de rédaction). Une synthèse et d'autres résultats se trouvent dans la thèse d'O. Delmas [13]. Une synthèse des travaux publiés dans ce domaine est en cours d'écriture [dCASANICE].

Heuristiques

Les problèmes de communication dans des réseaux généraux étant souvent NP-complets, nous avons développé des heuristiques, en particulier pour l'échange total et les communications personnalisées ([28,48]). La technique utilisée assez générale est basée sur la notion de couplage de poids maximum dans un graphe. Lorsque nous avons appliqué notre approche à des topologies classiques nous avons obtenu des résultats optimaux dans de nombreux cas. Nous avons aussi cherché à valider l'approche dans le cas de topologie résultant du partage d'une machine entre plusieurs utilisateurs. Le sous-ensemble de processeurs à la disposition d'un utilisateur est donc un sous-ensemble de la topologie originale, dans notre cas la grille. L'approche s'est révélée, en général, plus performante que d'autres heuristiques.

Routage

Nous avons aussi considéré les problèmes de routage en distribué. Nous avons étudié la minimisation du nombre de tampons (« buffers ») nécessaires pour éviter l'interblocage (voir [38]). Pour ce faire, nous nous sommes intéressés au problème équivalent de trouver des orientations acycliques (essentiellement deux) telles que le nombre de changements d'orientations dans tous les chemins correspondant à des requêtes soit le plus petit possible. Nous avons montré des résultats de complexité et donné des valeurs quasi optimales pour des réseaux classiques tels que la grille ou le tore. Par ailleurs, nous avons prouvé que la détermination d'un routage par intervalles compact est un problème difficile [27], et que ce résultat reste valable lorsque l'on considère des routages sans interbloquage utilisant un nombre de tampons fixé [47]. Enfin nous avons prouvé dans [83] que si l'on remplace la contrainte de << routage par les plus courts chemins >> par une contrainte de << routage par des chemins relativement courts >> il devient possible de déterminer des fonctions de routage compact.

Communications optiques et ATM



Participants : Bruno Beauquier , Jean-Claude Bermond , Stéphane Pérennes , Michel Syska , Ugo Vaccaro


Nous étudions le modèle WDM (Wavelength Division Multiplexing), où le spectre est découpé en plusieurs longueurs d'onde. Au cours d'une étape, des communications différentes peuvent partager un arc (fibre optique) si elles utilisent des longueurs d'onde différentes. Les commutateurs optiques (actuellement commercialisés) sont capables de diriger un message arrivant sur une longueur d'onde, sur n'importe quel canal de sortie, sans modifier la longueur d'onde ; cependant les commutateurs ne peuvent séparer qu'un nombre borné de longueurs d'onde. Dans le cas d'une seule longueur d'onde, le modèle est analogue à celui de la commutation de circuits et certaines idées peuvent être réutilisées. Nous nous sommes intéressés aux communications dites tout optique, qui s'effectuent en une seule étape et évitent ainsi d'utiliser l'électronique.

Le problème général est le suivant : on cherche à satisfaire un certaine famille I de requêtes de communication dans un réseau G en utilisant un nombre w de longueurs d'onde; ceci revient à déterminer, pour chaque couple de noeuds intervenant dans les requêtes, un chemin et une longueur d'onde de telle sorte que deux chemins associés à la même longueur d'onde soient arc disjoints. On cherche alors en général à déterminer le nombre minimum de longueurs d'onde w(G,I) nécessaires afin de réaliser la famille I de requêtes dans le réseau G .Jusqu'à présent, nous avons surtout obtenu des résultats dans le cas statique (<< off-line >>) où l'on suppose connue à l'avance la famille I(voir la synthèse [37]) ; mais nous étudions le cas dynamique (<< on-line >>) dans le cadre de la coopération franco israélienne (cf. section [*]). En particulier nous avons prouvé que la détermination de w(G,I) s'effectue en temps polynômial dans les cas suivants  : la famille I correspond à un multi-cast (diffusion d'un noeud vers une famille d'autres noeuds [17]) ; la famille I correspond à un échange total (I contient tous les couples comme requêtes) et le réseau G est un arbre ([52]) ou un tore. Dans tous ces cas il est montré que le nombre minimum de longueurs d'onde est égal à la charge du réseau (maximum de la charge d'un arc égale aux nombre de chemins empruntant cet arc et utilisés pour satisfaire les requêtes).

Cette charge est déterminante dans les réseaux utilisant le routage ATM. Ce protocole est de type connecté, ainsi chaque cellule est munie d'un en-tête qui associe explicitement la cellule pour un canal virtuel donné à un lien physique. Le CNET nous a soumis le problème dit du << virtual path layout >>, et nous le modélisons ainsi : à un réseau physique donné est associé un réseau virtuel, tous les deux étant modélisés par des graphes orientés. Chaque arc du réseau virtuel correspond à un chemin du réseau physique ; la contrainte est que la charge d'un arc du réseau physique ne doit pas dépasser la capacité de l'arc (qui est une donnée du problème). Moyennant cette contrainte, on cherche à réaliser une famille de communications minimisant le nombre d'arcs des chemins utilisés (nombre de << sauts >>). Nous avons prouvé que ce problème appartient à la classe des problèmes NP-complets (voir [41,44]). Nous avons étudié en particulier le cas où les capacités sont constantes et où les requêtes correspondent à un échange total ; on est alors amené à minimiser le diamètre du graphe virtuel.

Algorithmique du parallélisme



Participants : Afonso Ferreira , Jérome Galtier


Avant de concevoir un algorithme parallèle pour résoudre un problème donné, on doit choisir un modèle de programmation. Dans nos recherches, nous nous intéressons à des modèles de programmation parallèle qui facilitent le passage de la conception des algorithmes à leur implantation en environnement réel [34]. En particulier, nous nous intéressons aux modèles à gros grain que sont BSP et CGM, et à l'implantation des algorithmes conçus sur des machines parallèles à mémoire distribuée et sur des grappes de PC. Nous avons développé des algorithmes pratiques pour la recherche paramétrée [43] et pour des problèmes clés sur des graphes, tels le << list-ranking >>, le calcul des composantes connexes, le tour d'Euler et autres [39]. L'algorithme de calcul des composantes connexes d'un graphe quelconque a été implanté sur deux plates-formes distribuées, afin de montrer que ces modèles permettent d'écrire des algorithmes d'implantation efficace.

Le cas particulier des très grandes structures de données irrégulières pose des questions délicates, notamment pour les calculs numériques par éléments-finis. Dans cette optique, nous avons développé un algorithme de génération de maillages 3D parallèle pour architecture parallèle distribuée. Cette application a pu notamment être testée sur des exemples fournis par EDF [50,49] (voir aussi la Section [*]).



previous up next contents Précédent : Logiciels Remonter : Projet SLOOP, Simulation, Langages à Suivant : Actions industrielles