La Chaire de recherche en calcul distribué (la Chaire CALDI)
a été créée à l'Université
du Québec à Hull en février 2001, afin de promouvoir la spécialisation
dans un domaine scientifique cohérent avec l'environnement technologique
de la région de la capitale nationale. Les travaux de la Chaire CALDI
portent sur le traitement de l'information dans des systèmes distribués
et sur les problèmes de communication dans les réseaux, qui s'y rattachent.
Le calcul distribué est un domaine de l'informatique dont la croissance s'est accélérée
de manière significative pendant la dernière décennie. Ce développement rapide
est dû au rôle grandissant que les réseaux informatiques et la télécommunication
jouent dans la vie de la société moderne. Le calcul distribué constitue un fondement
de ces deux domaines d'application de l'informatique. Il concerne les environnements où
plusieurs processeurs situés dans des endroits différents doivent coopérer pour accomplir
ensemble une tâche de traitement des informations. La nature des tâches réalisées
de manière distribuée peut être très diversifiée. Comme exemples d'applications considérons
les calculs numériques
trop complexes pour un seul ordinateur, la coordination du travail de toutes les succursales
d'une banque, dispersées à travers le continent, ou la recherche d'une information sur
l'Internet. Les processeurs qui doivent coopérer peuvent être des
ordinateurs d'un réseau local d'une université, situés tous à proximité l'un de l'autre,
mais peuvent aussi être des serveurs Internet situés à des milliers
de kilomètres. Evidemment, chacune de ces situations présente des problèmes et des
défis différents, concernant l'organisation et le partage du travail.
Chaque processeur a un certain degré
d'autonomie et est capable d'exécuter des parties de la tâche de manière locale,
indépendamment des autres processeurs. Il possède une mémoire et une unité de contrôle
séparées des autres.
Cependant, pour accomplir la tâche entière,
les processeurs doivent partager certaines
ressources, ce qui exige une coordination entre eux. Cette coordination est possible grâce à
la communication entre les processeurs qui échangent des messages pendant l'exécution de la
tâche. Les problèmes de communication dans les réseaux constituent donc un aspect important
du calcul distribué. Le partage des ressources entre les processeurs concerne les trois aspects
suivants.
Les données du problème sont initialement réparties parmi les processeurs et doivent être
échangées entre certains d'eux. Ainsi, par exemple, les opérations bancaires faites par un client
dans diverses succursales doivent être connues dans chacune d'elles.
Les résultats partiels du calcul d'un processeur doivent être communiqués aux autres pour servir
à leur tour comme données pour les calculs effectués par eux. Ainsi, par exemple, des grandes
tâches du calcul matriciel sont exécutées de manière distribuée en assignant aux processeurs
des calculs concernant différentes parties de la matrice; ces calculs étant dépendants l'un de
l'autre, les processeurs doivent échanger interactivement les résultats partiels pour mener
le calcul global à sa fin.
Les résultats finaux du calcul distribué sont répartis parmi les processeurs, chacun d'eux
gardant souvent seulement une partie du résultat global. Ceci est dû soit à la taille
des résultats, trop grande pour la mémoire de chaque processeur, soit au fait que chaque
processeur aura besoin seulement de la partie des résultats le concernant, dans la réalisation
de ses tâches futures. Ainsi, par exemple, après avoir accompli la tâche fondamentale
de trouver un arbre sous-tendant minimal du réseau de manière distribuée, chaque processeur gardera seulement
dans sa mémoire locale les arêtes incidentes de l'arbre.
Les caractéristiques cruciales des systèmes distribués présentées ci-dessus expliquent les défis
particuliers posés par le calcul distribué, en comparaison au calcul centralisé,
effectué par un seul processeur. Les nouveaux problèmes, qui n'existent pas dans un environnement
centralisé, concernent le partage de travail entre les processeurs pour profiter au maximum
des capacités de calcul de chacun d'eux, l'organisation de communication entre les processeurs
pour coordonner leur travail de manière efficace et le maintien de balance entre le fardeau de
calcul local reposant sur chaque processeur individuellement et le fardeau de communication reposant
sur tout le système. Ces nouveaux défis causent une complication supplémentaire du calcul distribué
par rapport au calcul centralisé: beaucoup de tâches pour lesquelles les solutions centralisées
sont bien connues posent des problèmes majeurs si on veut les résoudre de manière distribuée.
Cependant, le rendement du travail additionnel consacré à surmonter ces nouveaux défis est dans
la plupart des cas très significatif: les méthodes distribuées sont en général beaucoup plus rapides
que celles utilisant le calcul centralisé. À l'époque où le volume d'information traitée
subit une croissance exponentielle, le traitement distribué devient inévitable: aucun ordinateur
individuel n'a les ressources suffisantes pour réaliser les tâches informatiques
énormes exigées maintenant et dans l'avenir. Le calcul distribué devient un outil indispensable
et il est quasiment certain que son rôle croîtra avec le temps.
Axes de recherche
Les travaux de la Chaire CALDI portent surtout sur les aspects algorithmiques et logiciels du calcul distribué.
Il faut souligner la dépendence mutuelle
de ces deux problématiques, ainsi que leurs liens avec les aspects matériels.
D'une part, les résultats des travaux sur les algorithmes distribués servent directement,
par exemple, à
la conception des protocoles de communication, ou à la construction des bases de données réparties.
De même, l'analyse d'efficacité des algorithmes de communication dans les réseaux de diverses
topologies peut et devrait influencer le choix de topologie dans les réseaux futurs. Ces exemples
montrent l'influence des algorithmes distribués sur les aspects logiciels et matériels des systèmes
distribués. D'autre part, l'influence est aussi réciproque. Les nouvelles technologies dans le domaine de
télécommunication, aussi bien dans sa partie matérielle que logicielle, influencent de manière
significative les modèles théoriques de communication et les problèmes algorithmiques considérés.
Deux exemples particulièrement convaincants de l'influence de la technologie sur l'algorithmique distribuée
sont les suivants. L'utilisation croissante de la fibre optique dans les réseaux de communication
a généré l'intérêt porté aux modèles de communication qui tiennent compte des caractéristiques
particulières des canaux optiques de communication. D'autre part, la popularité de l'Internet et son
rôle grandissant dans la société moderne a contribué à l'effervescence de sous-domaines nouveaux
de l'algorithmique distribuée, tels l'exploration des réseaux inconnus par des agents mobiles,
ou la recherche de données
sur le ``Web''. On voit donc que l'algorithmique distribuée qui sera au centre des travaux de la Chaire
est étroitement liée à l'ensemble de la problématique du calcul distribué, ainsi qu'aux
problèmes de ses deux domaines principaux d'application: les réseaux informatiques et la télécommunication.
Dans ce qui suit, nous décrivons les principaux axes de recherche envisagés dans les travaux
de la Chaire. Chacun de ces axes constitue un projet de recherche d'une durée de plusieurs années. Ces axes
sont liés étroitement entre eux et les travaux les concernant se poursuivront souvent en parallèle.
Il faut souligner que cette description n'est pas limitative:
les virages technologiques à prévoir dans la prochaine décennie et le développement du domaine de calcul
distribué qui s'ensuivra modifieront sans aucun doute plusieurs de ces axes et en ajouteront d'autres.
Cependant, la description suivante fournit des exemples représentatifs des types de problèmes de recherche
qui seront étudiés par la Chaire CALDI.
Communication dans des environnements partiellement inconnus
Dans beaucoup d'applications, la topologie du réseau de communication et ses paramètres tels que le
diamètre, la grandeur ou le degré maximal, peuvent être totalement ou partiellement inconnus aux
processeurs. Souvent, l'information dont chaque processeur dispose est limitée à la partie du réseau située
à proximité de lui. Dans de telles situations, les algorithmes de communication qu'on peut utiliser
doivent dépendre seulement de l'information locale disponible. Le problème principal que nous
prévoyons étudier concerne l'optimisation des algorithmes de communication qui peuvent travailler dans
des réseaux partiellement inconnus et l'influence de la quantité d'information disponible aux processeurs
sur l'efficacité de la communication.
Communication dans des réseaux défectueux
La taille croissante des réseaux de communication et l'énorme volume de l'information transmise
rendent les réseaux de plus en plus vulnérables aux pannes des composantes, tels les noeuds et les liens
du réseau. Ces pannes peuvent être de nature permanente ou temporaire, peuvent être limitées à
une partie du réseau ou être dispersées aléatoirement à travers lui, finalement elles peuvent
altérer le fonctionnement des composantes de manière très diverse. Le problème principal dans ce
contexte est de concevoir des algorithmes de communication qui travaillent de manière fiable et efficace
malgré la présence des pannes et sans connaître a priori leur localisation.
Un des aspects importants de tels algorithmes est le diagnostic des pannes dont le but est d'apprendre
la localisation de ces dernières, en utilisant des méthodes distribuées, sans faire appel à un moniteur
central coordonnant les actions des processeurs. Les méthodes en question reposent sur la collecte des résultats
de tests que les processeurs effectuent sur leurs voisins.
Cette tâche présente un défi additionnel dû
au fait que l'information provenant des processeurs défectueux n'est pas fiable et on ne sait pas
a priori quels processeurs sont et quels ne sont pas en panne. Des méthodes raffinées de sélection
de tests et de leur analyse permettent néanmoins d'extraire l'information nécessaire pour effectuer
un diagnostic fiable.
Exploration des réseaux
Dans plusieurs applications, il est important d'apprendre la topologie d'un réseau inconnu, telle une partie
de l'Internet ou un réseau mobile particulier. Dans un tel cas, un ou plusieurs agents mobiles
(qui sont des programmes développés spécialement pour l'exploration des réseaux) doivent
construire la carte du réseau (c'est-à-dire trouver le graphe sous-jacent)
en traversant tous ses noeuds et liens. Le problème qui se pose est d'organiser
le travail de ces agents de la manière la plus efficace possible, c'est-à-dire de sorte qu'ils
complètent leur tâche en temps minimal, en se partageant le travail et en évitant des parcours redondants.
L'organisation des trajectoires de ces agents dans l'environnement inconnu et l'ordonnancement de communication
entre eux présentent un défi de taille que nous allons entreprendre.
Communication dans les réseaux sans fil et les réseaux mobiles
La popularité croissante de la téléphonie cellulaire est à la base de l'augmentation d'intérêt de
la communauté scientifique pour un type particulier de réseaux de communications:
les réseaux sans fil et les réseaux mobiles. Ce type de réseaux, dont l'application principale ne
concernait encore récemment que les besoins militaires, est devenu indispensable dans la vie quotidienne et
son rôle augmentera encore avec la popularisation d'accès sans fil à l'Internet. Les réseaux sans fil
et les réseaux mobiles sont une source de nouveaux problèmes algorithmiques de grande importance. Le choix
des longueurs d'onde qui minimise l'interférence, la localisation dynamique des noeuds mobiles du réseau,
la communication dans un environnement inconnu qui change fréquemment n'en sont que quelques exemples.
Les méthodes de l'algorithmique distribuée sont particulièrement bien adaptées à la solution de ces
problèmes. En effet, les réseaux classiques sont relativement stables et leur topologie peut être apprise par les
noeuds du réseau après un certain temps de son fonctionnement. On peut donc parfois utiliser des
algorithmes centralisés de communication dans cet environnement.
La structure des réseaux mobiles,
par contre, change souvent pendant l'exécution d'un protocole de communication. Ceci ne permet pas d'utiliser
les algorithmes faisant appel à la connaissance globale du réseau et les méthodes distribuées basées seulement
sur l'information locale deviennent indispensables.
Optimisation des systèmes à objets répartis
Les nouvelles applications informatiques sont de plus en plus tributaires de
deux technologies fondamentales : l'orienté objet et la répartition (ex. le
client-serveur). Les méthodes de conception orientée objet actuelles ne se
prêtent que peu ou pas du tout à l'élaboration méthodique et efficiente de
larges systèmes distribués. Un des principaux obstacles à une répartition
efficace des objets est le haut degré de saturation du réseau découlant des
nombreux échanges de messages inhérents au paradigme objet. Une de nos
problématiques de recherche consiste en la quantification des couplages
existants et en la découverte de permutations et de regroupements d'objets
par pôles d'affinité communicationnelle afin de minimiser le trafic entre
processeurs.
Modélisation des comportements des composantes d'un réseau
Les composantes physiques des réseaux actuels sont de plus en plus complexes, ce qui rend
leur modélisation difficile et pose des problèmes
lors de la planification et la gestion de ces réseaux. Dans nos travaux, nous développons des
méthodologies de représentation permettant de
modéliser le comportement de ces composantes de façon réaliste. Nous spécifions plus
particulièrement les protocoles de communications qui permettront les échanges nécessaires
pour le bon fonctionnement du réseau défini par de telles composantes. Comme exemple de
composantes, nous considérons des commutateurs et des routeurs qui communiquent pour le
maintien de la qualité de service du réseau.
Gestion de la performance globale dans des réseaux complexes
Les réseaux actuels intègrent plusieurs composantes réparties dans des espaces larges et qui
doivent communiquer afin de garantir la performance du réseau dans des contextes dynamiques.
Le problème de performance globale d'un réseau dynamique est encore ouvert et fait l'objet
d'études récentes. Nous définissons des stratégies qui permettront de garantir
la performance globale en fonction des changements du réseau. Comme exemple nous
étudierons des cas de routage dans des réseaux larges et complexes afin d'équilibrer la charge
de chaque routeur en considérant différentes topologies de réseaux.