![]()
Précédent : Composition de l'équipe Remonter :
Projet
PARA Suivant : Actions de recherche
La programmation de plusieurs processus concurrents n'est pas facile, car leur synchronisation est souvent délicate. Elle demande de bien comprendre le modèle sous-jacent et de disposer de primitives rigoureusement définies. C'est pourquoi le projet Para étudie la programmation concurrente. Notre projet ne traite ni du parallélisme fortement synchrone, ni de l'algorithmique pour des machines SIMD à parallélisme massif. Notre objectif est de construire des systèmes pour programmer des applications faiblement synchrones sur des architectures à mémoire partagée ou distribuée. Dans ce cadre, notre effort se dirige actuellement vers la programmation des processus mobiles qui permet de tenir compte de la reconfiguration dynamique des interconnexions.
En effet, le développement des réseaux et des applications
distribuées à grande échelle rend encore plus critiques la
programmation. Les serveurs multi-sites doivent s'envoyer des
informations de très haut niveau pour contourner les limitations
de bande passante. On peut donc envisager l'échange non seulement
de données, mais de petits programmes que les serveurs (ou même
les clients modulo des problèmes de sécurité) exécuteront à
distance, le concept d'appel de procédures distantes étant
remplacé par l'envoi d'un agent, c'est-à-dire la
migration d'un processus mobile porteur d'une requête.
Certains langages tels que Facile (de B. Thomsen à
l'ECRC-Munich), Obliq (de L. Cardelli à DEC/SRC) et Pict (de
B. Pierce et D. Turner à Cambridge/Edimbourg) ont été
récemment définis, reprenant plus systématiquement la vieille
idée du langage Plasma (de C. Hewitt au MIT en 1970). Plus
commercialement, il y a le Telescript de General Magic. D'autres
langages, comme Java de Sun Microsystems ou le Hot Caml du projet
CRISTAL, permettent l'envoi de programmes sur le World Wide
Web. Parmi ces propositions, seuls Obliq et Pict permettent
l'envoi de sous-programmes actifs, c'est-à-dire de processus avec
leurs environnements actifs en cours d'exécution. Notre groupe
travaille sur la définition d'un Pict distribué. Un nouveau
calcul, le join-calcul, a été introduit en 95 et sa
relation avec le
-calcul a été
démontrée. Ce nouveau calcul est implémentable, même en présence
de pannes, contrairement au
-calcul de
R. Milner qui suppose une diffusion résistante aux pannes
pour chaque communication. Le prototype d'une implémentation
physiquement distribuée est en cours d'achèvement.
L'intérêt de notre projet est donc non seulement porté vers la sémantique des langages de programmation, mais aussi vers leur implémentation parallèle et à plus long terme la construction de systèmes informatiques concurrents. Pour ce faire, nous avons naturellement des relations techniques suivies avec d'autres groupes de l'INRIA dans les domaines des systèmes d'exploitation, des langages de programmation, et des systèmes de preuves. Par exemple, les langages dont nous étudions les relations avec le parallélisme ou la distribution sont des langages fonctionnels, pour trois raisons : 1) ils sont rigoureusement définis, 2) ils sont facilement disponibles dans le contexte de l'INRIA, 3) ils correspondent à la culture technique des personnes de notre projet. Pour mener une activité pratique, nous utilisons les machines mono-processeur standards de l'INRIA, mais aussi des machines multi-processeurs (un Sequent B8000 à dix processeurs et à mémoire partagée, un Encore MultiMax avec 14 processeurs, et une KSR à 72 processeurs). Un glaneur de cellules concurrent, non bloquant et portable a été conçu et implémenté pour Concurrent Caml-light (CCL) ; sa version incrémentale mono-processeur est celle disponible sur Caml-light 0.7 et sur O'Caml. Il a été certifié mécaniquement en 95 grâce à une preuve de 9 hommes mois.
Quant à la théorie, c'est aussi une activité importante pour
notre groupe. Elle se concentre sur les propriétés syntaxiques
des systèmes avec variables liées et sur quelques problèmes fins
de l'implémentation des langages fonctionnels ou
concurrents : sémantique du join-calculus et
relation avec le
-calcul, formalisation
des back ends avec les substitutions explicites,
filtrage, évaluations incrémentales, systèmes de réductions
abstraits pour traiter des théorèmes des développements finis et
de normalisation forte, ou des réécritures de graphes. En 1996,
une bonne partie de l'effort théorique a été de publier la
sémantique du langage Pict distribué avec adressage physique
intégré. Ce travail a été effectué par un groupe de travail
regroupant la grande majorité des membres de notre projet et
D. Rémy du projet CRISTAL. Dans ce cadre, nous avons recréé
la communauté de notre projet Esprit CONFER en lançant en
novembre 96 le Working Group CONFER-2 du Framework 4, dont nous
sommes le site coordinateur.
L'année 1996 est pour nous une année d'approfondissement et de recentrage autour de notre projet principal de construction d'une implémentation prototype du join-calcul distribué. Elle est aussi marquée par la soutenance de thèse de P.-A. Melliès, qui est parti pour 2 ans en post-oct chez S. Abramsky à l'université d'Edimbourg en février 1996. S. Huet a été stagiaire du DEA SPP au printemps. F. Guillaume a rejoint le corps des Telecom. G. Le Corre est partie en mobilité à l'INRIA Rhone-Alpes.