Précédent : Logiciels Remonter : Projet ReMaP, Régularité et
Parallélisme Suivant : Actions industrielles
Participants : Pierre Boulet , Pierre-Yves Calland ,
Alain Darte , Frédéric Desprez , Cyril Randriamaro , Fabrice
Rastello , Yves Robert , Georges-André Silber , Frédéric
Vivien
Mots-clés : compilation, parallélisation
automatique
Nos objectifs sont de développer et d'intégrer de nouvelles stratégies permettant de transformer (semi-) automatiquement des portions de code séquentiel (principalement des boucles Fortran) en codes annotés par des directives HPF. Le but est d'aider le programmeur à identifier le parallélisme potentiel de son code au niveau des boucles et d'effectuer automatiquement les transformations nécessaires à sa place.
Nos travaux présentent deux facettes, fortement couplées :
Nos résultats théoriques récents (développés brièvement dans les paragraphes ci-après) sont les suivants :
Les derniers paragraphes donnent un aperçu du logiciel Nestor, paralléliseur de boucles en cours de développement, permettant à l'heure actuelle de manipuler de façon simple les arbres syntaxiques d'un Fortran-HPF complet et du logiciel TransTool, plate-forme qui l'englobe.
Une transformation de code est valide si elle ne change pas la sémantique du code, c'est-à-dire si elle respecte certaines contraintes de précédence (appelées dépendances) entre calculs. En général, on exprime ces dépendances par une structure finie (le graphe de dépendances ) qui peut fournir une description exacte des dépendances du code séquentiel lorsque le code lui-même est régulier, mais qui peut n'en être qu'une sur-approximation. Plus l'approximation est fine, plus il est coûteux de la construire, mais plus grand est l'ensemble des transformations valides et plus nombreuses sont les possibilités d'optimisation. Cependant, pour un objectif donné, élargir l'ensemble des transformations valides peut être inutile s'il contient déjà la transformation désirée. Ce problème de complexité se pose bien sûr lorsqu'on veut réaliser un vrai paralléliseur et que des compromis doivent être envisagés. Doit-on analyser aussi finement que possible le programme (à un coût maximal) ou peut-on se contenter d'approximations, sachant qu'apparemment les programmes réels ne représentent pas tous les cas pathologiques de la théorie? Puis, une fois l'analyseur choisi, quel algorithme de parallélisation est le mieux adapté?
Pour mieux comprendre ce problème de représentation par une structure régulière, nous avons proposé une classification de tous les algorithmes connus de détection de parallélisme, en fonction de leur optimalité par rapport à l'analyse de dépendances. Ce travail de synthèse [17] est, à ce jour, le seul qui permette de comprendre, dans un unique modèle, non seulement les cas d'optimalité de ces algorithmes mais aussi leurs limitations intrinsèques, qui sont dues à la précision de l'information extraite statiquement des codes. Il complète l'étude duale de Yang, Ancourt et Irigoin qui ont caractérisé la représentation des dépendances la plus simple permettant d'appliquer une transformation de boucles particulière. Entre les algorithmes d'Allen et Kennedy et de Wolf et Lam (dont les critères d'optimalité sont maintenant connus, voir [59,15]) et l'algorithme de Paul Feautrier (le plus puissant mais non optimal pour la représentation des dépendances qu'il utilise, les dépendances affines), il restait un vide à combler : quel algorithme utiliser si l'on dispose à la fois d'une représentation classique comme les vecteurs de direction et de la structure du graphe? Nous avons proposé un algorithme optimal pour cette représentation, en fait optimal pour toute approximation polyédrale des vecteurs de distance [60,16].
L'étude évoquée au paragraphe précédent caractérise les algorithmes vis-à-vis d'un objectif bien particulier : la recherche du ``degré maximal'' de parallélisme contenu dans une description des dépendances, grossièrement le nombre maximal de directives !hpf$ independent imbriquées qui peuvent être générées. Si cet objectif semble être un bon point de départ, d'autres problèmes d'importance doivent être résolus dans un processus complet de parallélisation.
Ainsi, une fois que l'on sait pouvoir générer des boucles parallèles, comment le fait-on effectivement ? Peut-on garantir que la génération du code sera suffisamment simple pour que l'utilisateur puisse décrypter le code transformé s'il souhaite encore le peaufiner, ou pour que d'autres phases d'optimisation puissent encore lui être appliquées? La réponse est oui pour une classe (assez large) de transformations que nous avons identifiée, la classe des ordonnancements multi-dimensionnels décalés (voir [7]).
Un autre problème est le problème de la granularité de la parallélisation. Ce problème est lié, selon les cas, à la fusion de boucles, à la recherche de boucles parallèles internes, de boucles parallèles externes ou de boucles permutables. Nous avons abordé ces problèmes en combinant des techniques de retiming de graphes avec les techniques traditionnelles d'ordonnancement, proposant des algorithmes optimaux en ordre de grandeur (voir [14]). Nous avons également montré que le problème d'optimisation (exact, pas seulement en ordre de grandeur) était NP-complet (voir [7]).
Certaines dépendances ne sont pas des dépendances intrinsèques à un algorithme mais proviennent de la façon dont celui-ci a été codé dans sa version séquentielle. Ces dépendances, dites fausses, peuvent être éliminées par expansion de la mémoire (renommage de tableaux ou même expansion ou privatisation de tableaux). Caractériser l'expansion minimale est en revanche NP-complet (voir [52]). Nous avons néanmoins proposé une technique permettant de réduire l'expansion en l'intégrant directement dans les algorithmes de parallélisation [53,12].
Dans le cadre des boucles complètement permutables, le pavage (tiling) a été beaucoup étudié comme une transformation source-à-source. Peu de travaux ont été consacrés à l'allocation et à l'ordonnancement des tuiles sur les processeurs physiques. Nous présentons dans [13,54] plusieurs résultats dans le contexte de ressources de calcul limitées et de recouvrement calculs-communications. En particulier, sous un certain nombre d'hypothèses raisonnables, nous calculons l'allocation et l'ordonnancement optimaux des tuiles sur les processeurs physiques. Par ailleurs, nous étendons dans [18,62] des travaux récents de Högsted, Carter et Ferrante (PoPL'97) dont le but est de déterminer le temps d'attente cumulé passé par tous les processeurs pendant l'exécution du domaine de calcul partitionné (pavé).
Nous développons, parallèlement à nos recherches théoriques, un outil de transformation automatique de boucles imbriquées (Nestor) construit autour d'Adaptor, un compilateur HPF écrit par Thomas Brandes. Ce compilateur dispose d'un analyseur complet de Fortran 77 et d'HPF. En revanche, il n'offre pas de facilité de manipulations d'arbre syntaxique et de transformations de boucles. Nous avons mis au point une bibliothèque de manipulations de tels arbres, nous avons connecté cette bibliothèque à un analyseur de dépendances puissant et gratuit (Petit, développé par Bill Pugh) et nous implantons peu à peu nos techniques dans ce logiciel qui nous sert donc à la fois de plate-forme d'expérimentations et de plate-forme de validation.
Un des problèmes rencontrés par les développeurs d'outils de parallélisation est la réécriture complète de nombreux composants d'outils tels que l'éditeur, l'analyseur syntaxique, l'analyseur de dépendances, le profiler. Ces développements sont coûteux en temps et en main d'oeuvre et nous avons choisi pour notre projet de partir de composants de base existants et gratuits. De nombreux outils puissants sont déjà disponibles, mais malheureusement ils ne sont pas intégrés et leur utilisation reste donc problématique. Les chercheurs de ReMaP ont donc démarré le projet HPFIT en collaboration avec le LaBRI à Bordeaux et le GMD/SCAI à Bonn. HPFIT intègre donc un certain nombre d'outils développés dans différents laboratoires autour d'un même outil de développement : TransTool.
TransTool, noyau du projet HPFIT est un outil de restructuration semi-automatique de programmes écrits en F77 vers HPF. Il contient un éditeur (XEmacs), un analyseur syntaxique (issu des outils de compilation utilisés par Adaptor), un analyseur de dépendances (Petit de l'université du Maryland) et un noyau d'optimisation et de parallélisation automatique. Ce noyau contient un certain nombre de développements théoriques et logiciels effectués dans le cadre du projet ReMaP. Pour l'instant, il contient des algorithmes de recherche de parallélisme (NESTOR) et des algorithmes d'optimisation de calculs pipelinés (LOCCS).
Participants : Frédéric Desprez , Stéphane Domas ,
Cyril Randriamaro , Yves Robert , Stéphane Ubéda
Nous avons développé un algorithme de multiplication de
deux matrices symétriques commutantes, distribuées sur une
grille de processeurs. Cette routine a été écrite pour
s'inclure dans la librairie PBLAS, elle
est donc portable et efficace. Elle a été utilisée avec
succès dans un programme de calcul de valeurs propres. La
caractéristique principale de cette routine est qu'elle
exploite la symétrie des matrices pour ne faire que les
calculs nécessaires. On peut donc pratiquement diviser le
temps d'exécution par deux par rapport au produit matriciel
général fourni dans les PBLAS.
Nous travaillons également sur l'enchaînement d'appels à des routines BLAS. Le but est de construire une bibliothèque qui gère de façon transparente le ``pipelinage'' d'un enchaînement quelconque de routines BLAS sur différents processeurs. L'utilisateur précise uniquement les paramètres de chaque BLAS. Une routine calcule automatiquement la solution optimale pour pipeliner l'exécution des BLAS. L'utilisateur obtient le maximum d'efficacité sans la programmation fastidieuse du pipeline.
Nous avons travaillé sur des algorithmes de redistribution de matrices pour la bibliothèque ScaLAPACK développée à l'université du Tennessee. Ces algorithmes sont utilisés pour améliorer les performances quand la distribution des matrices précédant un appel à une routine d'algèbre linéaire n'est pas la meilleure. Dans ce cas, il faut déplacer les données entre les processeurs et ceci avec un coût le plus faible possible. Nous avons développé des algorithmes optimaux en coût et en temps et amélioré les algorithmes existants [61].
Une parallélisation de certains noyaux du logiciel SCILab a été commencée. SCILab est un logiciel de calcul scientifique de type Matlab développé par le projet Méta-2 à l'INRIA. Nous comptons y intégrer des modules parallèle basés sur PVM. Dans un premier temps, une intégration de PVM dans SCILab permettra l'accès à la bibliothèque ScaLAPACK. Nous collaborons actuellement avec F. Bonnans (projet Promath, INRIA Rocquencourt) autour de la parallélisation d'algorithmes d'optimisation avec SCILabet C. Gomez (projet Méta-2, INRIA Rocquencourt) sur la parallélisation de SCILab.
Participants : Luc Bougé , Jean-François Méhaut ,
Raymond Namyst , Christian Pérez , Robert Russel
Nous avons été conduits à s'intéresser aux schémas de compilation capable de gérer l'irrégularité dynamique contenue dans une description régulière. Cette irrégularité peut être due au programme lui-même, si par exemple l'application répartit la charge de calcul inégalement sur les structures de données, ou si cette répartition change au cours du temps. Elle peut aussi être due au support d'exécution, si par exemple celui-ci est un réseau hétérogène de noeuds avec des puissances différentes, ou si la puissance disponible au niveau de chaque noeud varie au cours du temps (partage entre plusieurs applications).
Nous avons proposé d'introduire la possibilité d'équilibrage dynamique de la charge au sein même du processus de compilation. Il s'agit de rendre le code objet en quelque sorte indifférent à la distribution des données et des calculs, ce qui permet de déplacer ceux-ci dynamiquement sans modifier la sémantique. Dans la suite des travaux sur les schémas de compilation proposés par Hatcher et Quinn, nous avons choisi de mettre en oeuvre cette idée sur le compilateur C* présenté dans leur livre [HATC]. Le langage C* est une extension data-parallèle de C, initialement développée par Thinking Machine Corporation pour la CM-2 puis la CM-5. Phil Hatcher a développé ces dernières années une version publique du compilateur et ce travail s'est fait en étroite collaboration avec lui.
Il est apparu alors que les procédés ainsi proposés n'ont rien de spécifiques à C* et pouvaient être étendus au cas de HPF. Nous avons donc pris des contacts avec Thomas Brandes en vue de les appliquer au compilateur HPF Adaptor, en se basant sur le support exécutif multithreads PM2, développé au LIFL, Lille, par l'équipe de Jean-Marc Geib. Ce support permet en particulier la migration de threads. Il suffit donc de compiler le code HPF en plaçant un processeur virtuel accompagné de ses données par thread, puis de faire migrer ces threads! Les problèmes d'accès se réduisent donc à déterminer si le processeur partenaire est actuellement dans le même processus ou pas : il n'y a donc plus qu'un test par communication, au lieu d'un test par donnée échangée...
Nous avons modifié le compilateur Adaptor pour produire un code multi-threads PM2, tolérant à la migration de threads. Pour le moment, la migration est vue comme un appel à une procédure particulière de HPF, de manière complètement invisible au compilateur et au code produit. Dans un deuxième temps, ces appels pourront être insérés par le compilateur lui-même en se fondant sur l'analyse statique réalisée, peut-être en reprenant les résultats de Jean-François Collard du laboratoire PRISM. Des expérimentations précises ont été faites et présentées cette année [71].
Cette approche peut aussi être reprise pour la compilation
de C*. C. Pérez a été invité pendant un mois au printemps
1997 par Phil Hatcher pour réaliser ce projet. Raymond
Namyst, l'un des auteurs de PM2 au LIFL, l'a accompagné. Il a
été recruté comme maître de conférence à l'ENS à partir de la
rentrée 1997 pour travailler sur ce domaine. Un contrat
NSF-INRIA a été conclu pour soutenir cette collaboration
entre l'équipe de Hatcher et le LIP. Elle sera financée à
compter du novembre 1997 pour 2 ans.
Luc Bougé a bénéficié de 6 mois de congé sabbatique au printemps-été 1997 pour la mise en place de ce nouvel axe de recherche. Des rencontres avec les membres du projet Apache ont eu lieu cette année pour coordonner nos activités dans ces domaines.
Dans le cadre du laboratoire commun LHPC entre le LIP et la société MATRA Systèmes et information (MS&I), le LIP a fait l'acquisition d'une machine PoPC constituée de 12 PC Pentium Pro 200 MHz inter-connectés par un réseau Myrinet à 2 niveaux de routage et équipés chacun d'un disque de 2 Go. Cette machine sert de base d'expérimentation pour l'ensemble des activités de compilation data-parallèle décrites plus haut. Nous avons aussi lancé une étude préliminaire sur l'utilisation des disques locaux pour réaliser des entrées-sorties parallèles très performantes. Cette action est encore dans une phase exploratoire en étroite collaboration avec MATRA. Elle constitue le cadre de la bourse Cifre de A. Agahi.
Participants : Luc Bougé , David Cachera
Le langage L est représentatif des langages impératifs à parallélisme de données explicite comme C*, MPL, HyperC et dans une certaine mesure HPF (notation tableau à la Fortran90). Par contre, il ne rend pas du tout compte des langages fondés sur des systèmes d'équations récurrentes, plutôt de type fonctionnel comme Crystal, représentés particulièrement en France au sein du PRC-GDR PRS par PEI (Guy-René Perrin, ICPS, Strasbourg) et Alpha (Patrice Quinton et Sanjay Rajopadhye, Projet API, IRISA).
Or ces langages et particulièrement Alpha, connaissent actuellement un renouveau important comme support d'expression pour la conception structurée de circuits VLSI à un niveau d'abstraction plus haut que le langage VHDL classique. En effet, leur caractère fonctionnel permet de définir des méthodes algébriques de transformation formelle des programmes. Il est ainsi possible d'exprimer tout le processus de conception d'un circuit, depuis la spécification fonctionnelle jusqu'au VHDL, comme une suite de réécritures sur le texte Alpha. Les équipes de Rennes et de Strasbourg ont acquis en une dizaine d'années de travail une expertise remarquable sur cette approche. Divers environnements logiciels ont été réalisés et des exemples importants ont été traités. Des collaborations industrielles dans le domaine des circuits de traitement du signal sont actuellement en cours.
Cependant, très peu de travaux ont été consacrés à la validation formelle de programmes Alpha, indépendamment de leur transformation. Or, ces aspects sont très importants. En effet, de nombreuses propriétés ne sont pas exprimables à l'intérieur du formalisme Alpha (par exemple, toutes les propriétés qui font intervenir des aspects non polyédriques). D'autre part, les règles de transformation ne permettent pas d'oublier certaines parties de programmes pour démontrer des propriétés partielles.
Depuis 1996, nous avons donc entrepris d'appliquer au langage Alpha les méthodes de validation formelle développées pour le langage L, en étroite collaboration avec l'équipe de Patrice Quinton. Notre principal résultat précise le lien entre la vision fonctionnelle classique de Alpha et les propriétés logiques sous-jacentes. En fait, nous montrons qu'il est possible d'associer canoniquement à tout programme Alpha un invariant logique qui capture l'ensemble de tous ses comportements. La validation formelle d'une propriété du programme revient ainsi à vérifier qu'elle est une conséquence logique de cet invariant! Ceci peut se faire à l'aide d'un environnement de preuve comme PVS ou Coq.
Ces résultats ont été publiés [35] et présentés au cours de divers séminaires (Rennes, Nancy, Orléans, etc.), notamment au cours d'une école sur invitation à Dagstuhl Theory and Practice of Higher-Order Parallel Programming en février 1997 [34]. À cette occasion, nous avons pris contact avec Mary Sheeran, université de Chalmers, Göteborg, Suède, qui travaille sur des problèmes de validation formelle de circuits VLSI décrits dans un langage fonctionnel appelé Ruby. Des relations suivies avec ce groupe vont être mises en place par un séjour de 3 mois de David Cachera à l'automne 1997.
Participants : Lionel Brunie , Laurent Lefèvre ,
Olivier Reymann
Les actions de recherche autour de Dosmos s'articulent selon quatre axes principaux :
Participants : Lionel Brunie , Ahmed Mostefaoui
Nos recherches dans ce domaine s'orientent selon trois axes :
Participants : Loïc Prylli , Bernard Tourancheau
La limitation actuelle des réseaux haut débit est mis en exergue par la convergence du transport d'information vers le tout numérique. Un même support doit maintenant être capable de fournir du débit et un temps du réponse très court pour des applications d'image, de vidéo, de son, de temps-réel, de calcul coopératif, de base de données, etc.
L'émergence des réseaux haut débit est un phénomène nouveau en informatique. Très liée à la technologie, l'informatique des réseaux s'est développée très récemment grâce aux apports de l'informatique du parallélisme, de l'avancée des recherches en électronique et enfin de la demande des utilisateurs (Internet, Intranet) en performance lors du transfert de données complexes et de grandes tailles (images, vidéo, simulation, ...).
La recherche actuelle au niveau logiciel, qui est notre point fort, en est à ses balbutiements. La technologie a franchi deux ordres de grandeur en peu de temps et beaucoup d'espaces de recherche se sont créés.
Nous étudions les protocoles des réseaux haut débit du point de vue des applications coopératives. Nos recherches les plus récentes concernent l'étude des réseaux locaux à haut débit ATM et Myrinet et leurs protocoles. Nos objectifs sont le développement de recherches sur les protocoles réseaux haut débit et les applications coopératives utilisant les réseaux haut-débit, particulièrement en imagerie.
La technologie des réseaux haut-débit synthétise beaucoup des caractéristiques du parallélisme : haut-débit, commutation de paquets, processeur de communication intelligent. Notre but est donc d'intégrer nos compétences issues du parallélisme (redistribution de données [26], simulation distribuée d'architectures parallèles [74], monitoring d'exécution et algorithmique du calcul scientifique [31,3]) pour obtenir de bons résultats au niveau du transfert de données dans les couches basses des protocoles. Ainsi, aussi bien d'un point de vue algorithmique et modélisation que d'un point de vue pratique pour obtenir des interfaces ou des pilotes performants, nous pourrons réaliser des bibliothèques et des outils de gestion de haut niveau sans perte de performance.
Les résultats attendus sont de nouveaux protocoles pour le support des communications rapides, une méthodologie de conception de tels protocoles, la modélisation des architectures utilisées, la mise en place de recherches appliquées à certains types d'applications.
Notre recherche a donné ses premiers résultats avec des travaux sur l'AAL5 d'ATM pour fournir une interface pour le parallélisme [73,75]. Notre intérêt s'est ensuite tourné vers des matériels plus performants, moins chers et beaucoup plus ouverts. Nos premiers résultats dans le domaine des réseaux haut débit de type Myrinet ont été obtenus durant cette première année grâce à notre expérience précédente dans le domaine de l'algorithmique du parallélisme et des réseaux de communication [82,80,81]. Les logiciels BIP Basic Interface for Parallelism ont eu un franc succès en donnant aux utilisateurs l'accès aux performances remarquables des réseaux de type Myrinet aussi bien avec l'interface BIP que MPI-BIP [76]. D'autre part, les travaux de modélisation des pipelines de la plate-forme cible [72] qui ont permis de telles performances garantissent l'évolution des logiciels.
Après la mise en place de notre nouvelle plate-forme, une série de tests de performances et de validation sera effectuée en parallèle avec les premières recherches sur la modélisation des supports.
Nos recherches se dérouleront ensuite sur les axes suivants, tous liés au développement du protocole de bas niveau BIP pour l'exploitation des réseaux haut débit de type Myrinet.
Ces recherches concerneront l'optimisation de protocoles existants et la création de nouveaux protocoles mieux adaptés aux applications réseaux haut débit. Les liens avec les autres thèmes de ReMaP sont notamment :
Ainsi nous comptons poursuivre les recherches de L. Lefèvre sur les systèmes de mémoire distribuée virtuellement partagée et intégrer ses recherches à l'axe réseau haut-débit grâce à l'intégration de Dosmos avec BIP. De plus, notre intégration dans le laboratoire LIGIM nous permet de débuter des actions de validation applicatives grâce aux travaux d'imagerie fort demandeurs de performance réseau.
Nous avons proposé la mise en place d'une plate-forme réseau haut-débit dans le cadre du bâtiment de l'UR Rhône-Alpes. Cela permettrait de valider nos résultats en grandeur réelle et de susciter des collaborations entre les différents projets présents.
Participant : Thibault Duboux
Soft Mountain concentre actuellement son activité sur le développement d'un environnement de conception, d'exécution et de gestion d'applications à base de composants hétérogènes, pour des systèmes répartis également hétérogènes (CORBA, DCOM, TCP/IP). Pour cela, Soft Mountain utilise sa technologie d'objets réactifs (les composants interagissent grâce à des événements diffusés dans le système).
Dans sa version actuelle, l'environnement d'exécution réactif offre le potentiel pour physiquement répartir les objets logiciels sur un ensemble de sites matériels, mais les événements sont gérés par un moteur centralisé. La notion de synchronisme nécessaire au bon fonctionnement du modèle réactif est ainsi facilement respecté mais ce moteur centralisé représente un facteur limitant pour des applications de grandes tailles.
Pour améliorer performances et capacité, il est indispensable de concevoir un moteur réparti de façon à réduire le volume de communication entre sites distants. Néanmoins, cette répartition engendre des difficultés techniques pour le maintien de la consistance et du synchronisme de l'ensemble. C'est à ce niveau là que ReMaP apporte un complément idéal au savoir-faire de Soft Mountain.
En outre, cette collaboration conduira à la définition d'une méthodologie pour le placement efficace des objets sur l'architecture répartie cible, en vue d'optimiser l'utilisation des ressources disponibles en tenant compte des propriétés de l'application cible.
Participant : Pierre Fraigniaud , Thierry Chich ,
Sandrine Vial
Tout d'abord, soulignons que cet axe de recherche a quitté le projet ReMaP au 1er Septembre 1997.
Les travaux décrits ici ont pour principal objectif de soulager le programmeur parallèle de tout ce qui touche à l'acheminement de ses messages entre les différents processeurs mis en jeu par son application. Cet objectif s'est traduit par des prototypes de bibliothèques de communications et par l'étude approfondie des techniques de routage.
Depuis un an, nos recherches ont été principalement menées dans les directions suivantes :
La plupart des problèmes de communications globales structurées donnent lieu à des problèmes de décision NP-complets. Cependant, les topologies envisagées comme candidats plausibles pour interconnecter les processeurs d'une machine parallèle ne dépassent guère la douzaine. Ce fait a permis une étude quasi exhaustive des problèmes de communications globales structurées en parallélisme.
Deux évènements relativement récents ont remis en cause cet état de faits. D'une part, la plupart des machines parallèles sont (ou devraient être) multi-utilisateurs sous forme de partage de l'espace. Ce partage spatial détruit la structure régulière de l'ensemble des processeurs alloués à un utilisateur. D'autre part, l'utilisation pour le calcul parallèle de réseaux comprenant des processeurs aux caractéristiques très diverses ne permet pas de concevoir des algorithmes reposant sur une topologie fixe et homogène. Tout ceci conduit à la recherche d'algorithmes d'approximation susceptibles de fournir, quelle que soit l'architecture sous-jacente, un algorithme efficace de communications structurées.
Nous avons comme perspectives la mise en oeuvre sous forme logicielle de nos heuristiques afin de les rendre accessibles à partir d'un environnement de programmation parallèle.
Le développement de la demande en services réseaux requiert d'améliorer non seulement les performances matérielles (utilisation de technologies tout-optiques par exemple), mais aussi les protocoles de routage.
Dans le cadre d'un projet CTI avec le CNET et commun avec l'équipe Connexionisme du LIP, nous avons travaillé sur le routage dans les réseaux métropolitains utilisant une technologie optique pour les liens comme pour les routeurs. Nous avons ainsi proposé deux apports importants sur l'optimisation du routage dans ces réseaux :
Fusionner les techniques de multiplexage en longueur d'ondes avec les techniques par déflexion.