L'évolution des systèmes informatiques vers des architectures parallèles ou distribuées est un pari motivant. En effet, à technologie égale, on va nettement plus vite avec plusieurs processeurs ; et de la même manière, d'importants gains d'efficacité sont possibles en utilisant plusieurs machines reliées par un réseau. Cependant, 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 les
facilités de programmation. Les serveurs multi-sites devront
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, certaines promesses ont
été faites comme 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 de Pict distribué. Un nouveau calcul,
le join-calculus, a été introduit 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. Une
implémentation physiquement distribuée est en cours.
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). Depuis quelques années, deux environnements ML parallèles ont été développés sur les architectures à mémoire partagée : un environnement ML standard en appel par valeur, Concurrent Caml light (CCL), et un environnement ML paresseux (GAML). Un glaneur de cellules concurrent, non bloquant et portable a été conçu et implémenté pour CCL ; sa version incrémentale mono-processeur est celle disponible sur Caml-light 0.7. Il a été certifié mécaniquement grâce à une preuve de 9 hommes mois achevée en mars. CCL est en cours de distribution en ftp anonyme avec Caml light. Une version (JCL) avec les primitives du join-calculus sera aussi disponible. L'effort GAML a été arrêté en 1995.
Quant à la théorie, c'est aussi une activité importante pour
notre groupe en 1995. 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 1995, une bonne partie de l'effort
théorique a été de définir la sémantique du langage Pict
distribué. 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. Il a bénéficié des travaux effectués dans
le projet Esprit CONFER dont nous avons été le contractant
principal, et qui est en cours de renouvellement comme Working
Group du Framework 4.
Cette année a été marquée par la soutenance de thèse de D. Doligez concluant son travail sur les glaneurs de cellules concurrents. Il a été embauché à l'INRIA Rocquencourt. M. Pouzet a rejoint le projet SPECTRE de l'INRIA Rhône-Alpes à la fin de 1994. P.-A. Melliès partira pour 2 ans en post-doct avec S. Abramsky à l'université d'Edimbourg au début 1996. C. Fournet est un nouveau doctorant.
Enfin, en août, D. Doligez a contribué à la notoriété de l'INRIA en effectuant le ``craquage'' d'une session Netscape cryptée grâce à l'utilisation en parallèle de 112 machines de l'INRIA, de l'École Polytechnique et de l'École Normale Supérieure. Bien que triviale sur le plan cryptographique, cette réalisation donne un exemple de calcul pour lequel le parallélisme est indispensable. A cause de ses implications sur l'utilisation commerciale du réseau Internet, elle a donné lieu à des dizaines d'articles dans la presse quotidienne française et internationale, comme les San Jose Mercury News, Wall Street Journal, New York Times, the Independent, der Spiegel, Libération, Les Échos, l'Est Républicain, le Monde, etc (cf http://pauillac.inria.fr/~doligez/ssl).