Précédent : Logiciels Remonter : Projet SLOOP, Simulation, Langages
à Suivant : Actions industrielles
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.
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.
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].
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.
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.
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.
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.
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].
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].
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].
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.
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.
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]
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 -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
-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
dans
le plan)).
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 , sous
l'hypothèse
-ports, le nombre maximum de noeuds qui
peuvent être informés en k étapes est
. Ainsi on
peut espérer obtenir un algorithme de diffusion procédant en
é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].
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.
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.
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.
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
).