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

Présentation du projet

 

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).


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