previous up next top index
Précédent : Composition de l'équipe Remonter : Projet PARA Suivant : Actions de recherche


Présentation du projet

 

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 tex2html_wrap_inline193 -calcul a été démontrée. Ce nouveau calcul est implémentable, même en présence de pannes, contrairement au tex2html_wrap_inline193 -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 tex2html_wrap_inline193 -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.



previous up next top index Précédent : Composition de l'équipe Suivant : Actions de recherche Remonter : Projet PARA