![]()
Précédent : Composition de l'équipe Remonter :
Parallélisme
Suivant : Fondements scientifiques
Le projet Para s'intéresse à la programmation concurrente sous de multiples formes. La programmation de plusieurs processus concurrents est délicate. Elle demande de bien comprendre le modèle sous-jacent et de disposer de primitives rigoureusement définies. Notre projet ne traite ni du parallélisme fortement synchrone, ni de l'algorithmique pour des machines SIMD à parallélisme massif. Il ne traite pas non plus de l'algorithmique distribuée. Notre objectif est de construire des systèmes pour programmer des applications faiblement synchrones sur des architectures distribuées. Dans ce cadre, notre effort se dirige actuellement vers la programmation des processus mobiles qui permettent de tenir compte de la reconfiguration dynamique des interconnexions.
En effet, avec le développement des réseaux et des
applications distribuées à grande échelle, les serveurs
multi-sites doivent s'envoyer des informations de haut niveau
pour contourner les limitations de bandes passantes. On peut
envisager l'échange non seulement de données, mais de petits
programmes que les serveurs (ou même les clients modulo quelques
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. Il existe déjà de tels
langages avec agents, par exemple Facile [TLK96]
de B. Thomsen à l'ECRC-Munich, Obliq de L. Cardelli à
DEC/SRC ou Pict [PT97] de
B. Pierce et D. Turner à Edimbourg/Indiana/Penn.
C. Hewitt avait aussi autrefois développé le langage Plasma
au MIT en 1970. Dans le monde commercial, il y a 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 fournissent l'envoi de
sous-programmes actifs, c'est-à-dire de processus avec leurs
environnements actifs en cours d'exécution. En travaillant sur la
définition d'un Pict distribué, nous avons introduit en 1995 un
nouveau calcul, le join-calcul, dont nous avons montré
la relation avec le
-calcul [Rob91] de
Milner. Ce nouveau calcul est implémentable, même en présence de
pannes. De tous les langages précédemment cités, il est
actuellement le seul à être implanté dans un milieu distribué sur
tout système Unix. Nous avons deux systèmes diffusés en
ftp anonyme: le join-calcul 1.03 et jocaml
complètement compatible avec le langage Ocaml du projet
CRISTAL.
L'intérêt de notre projet est porté non seulement vers les fondements sémantiques des langages de programmation, mais aussi vers leurs implémentations et à plus long terme vers la construction de systèmes informatiques concurrents. 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. Du coté théorique, nous poursuivons des actions sur les équivalences de processus, les protocoles de sécurité, particulièrement importants dans le cas d'applications distribuées, sur le typage et sur les objets concurrents. Le travail sur le join-calcul a été effectué par la grande majorité des membres de notre projet et par D. Rémy du projet CRISTAL. Nous participons au Working Group CONFER-2 du Framework 4, dont nous sommes le site coordinateur. En 1998, nous avons démarré un projet RNRT avec le projet MEIJE, l'ENST et le CNET.
Par ailleurs, le projet continue l'activité sur l'analyse statique de programmes, démarrée en 1997 avec l'arrivée d'Alain Deutsch. Ce travail porte à la fois sur des relations suivies avec l'Aérospatiale et le CNES dans le cadre d'une étude sur la validité du code embarqué par la fusée Ariane 5, et sur l'optimisation de la compilation de Caml (projet CRISTAL) et de Java avec l'OSF à Grenoble, grâce à des analyses d'échappements. En 1999, Alain Deutsch sera mis en disponibilité pour participer à la création de l'entreprise V & V qui, dans un premier temps, industrialisera des méthodes d'analyse statique pour logiciel critique embarqué. En parallèle, Georges Gonthier est responsable d'un groupe de réflexion au CNES sur la mise à jour des normes de programmation pour le logiciel spatial embarqué.
Enfin, notre projet maintient une certaine activité dans les preuves formelles, initialisée par la longue preuve de sureté du glaneur de cellules de Caml concurrent (dont la version mono-processeur est le système incrémental de Caml et de Ocaml). Cette année, Damien Doligez a commencé un travail de 6 mois au laboratoire Compaq Systems Research Center de Palo Alto (USA) pour achever avec Leslie Lamport une longue preuve de la validité d'un protocole de cache des prochaines générations du processeur Alpha.
En 1998, nous avons un nouveau doctorant: Sylvain Conchon, dirigé par J.-J. Lévy. Cédric Fournet a soutenu sa thèse le 23 novembre et a été embauché (sur un poste permanent) par le laboratoire de Microsoft Research à Cambridge (UK). Carolina Lavatelli a fini son post-doc au 1er décembre.