Projet : PARA

previous up next contents
Précédent : Composition de l'équipe Remonter : Parallélisme Suivant : Fondements scientifiques


   
Présentation et objectifs généraux

 

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 $ \pi$-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.



previous up next contents
Précédent : Composition de l'équipe Remonter : Parallélisme Suivant : Fondements scientifiques