Projet Para

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


Présentation générale et objectifs

 

Le projet Para s'intéresse à la programmation concurrente sous de multiples formes. La programmation de plusieurs processus concurrents est souvent 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 permet 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 très 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. Autrefois, C. Hewitt avait développé le langage Plasma au MIT en 1970. Dans le milieu 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 permettent 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, contrairement au $\pi$-calcul qui suppose une diffusion résistante aux pannes pour chaque communication. En juin, la première version distribuée du join-calcul a été disponible publiquement sur le réseau en ftp.

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 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. Du coté théorique, nous avons poursuivi des actions sur les équivalences de processus, les protocoles de sécurité, particulièrement importants dans le cas d'applications distribuées, et sur le typage. Le projet a plutôt abandonné en 1997 son activité sur les propriétés syntaxiques des systèmes de réécritures. 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.

Autre événement important: l'année 1997 a vu l'arrivée d'Alain Deutsch dans notre projet, qui s'est donc adjoint un nouvel axe de recherche sur l'analyse statique de programmes, de première importance dans le domaine de la concurrence, où il est impossible de reproduire deux fois de suite la même exécution d'un programme. Cela a été validé dans l'activité sur la qualification du vol 502 d'Ariane 5 menée par une partie de notre groupe (A. Deutsch, D. Doligez, G. Gonthier, J.-J. Lévy) en collaboration avec F. Rouaix (projet CRISTAL) et M. Skubiszewski (projet RODIN) et l'Aérospatiale pendant les trois premiers trimestres de 1997.

Enfin, notre projet maintient une certaine activité dans les preuves formelles. Si l'année précédente avait été marquée par la réalisation de la longue preuve mécanique de la correction d'un glaneur de cellules concurrent, cette année a été aussi l'occasion pour construire un système de démonstration mécanique qui rendrait plus simple de telles preuves.

En 1997, nous avons deux nouveaux doctorants: Bruno Blanchet, dirigé par A. Deutsch, qui travaille sur l'analyse d'échappements, et Fabrice le Fessant, co-dirigé par J.-J. Lévy et M. Shapiro (projet SOR), qui travaille sur les GC distribués et une nouvelle implantation du join-calcul.



Notes:

...d'exécution
L'extension RMI de Java permet maintenant de communiquer certaines formes de fermetures


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