![]()
contact pour l'IRISA : J.-L. Pazat
Le projet PREPARE ESPRIT R&D est un programme de la Communauté Européenne d'aide au transfert industriel dans le domaine de l'informatique. Les projets ESPRIT R&D associent étroitement partenaires industriels et centres de recherche. Dans le contexte du calcul hautes performances, la Communauté Européenne soutient particulièrement les projets relatifs au développement de compilateurs et paralléliseurs pour des langages standardisés. C'est dans ce cadre que le projet PREPARE est financé.
Le contractant principal de ce projet est la société ACE (Pays-Bas) qui conçoit et commercialise des compilateurs ; les autres partenaires industriels sont Stéria (France), SoftLab (Suède) et le constructeur Parsytec (Allemagne). Les centres de recherche participant à ce projet sont GMD-FIRST (Allemagne), l'IRISA (France), PELAB (Suède), TNO-TPD (Pays-Bas), TUM (Allemagne) et l'université de Vienne (Autriche). Ce projet représente environ 69 hommes-années de travail ; il a débuté en Juillet 1992 et se terminera en Décembre 1995.
L'environnement de programmation réalisé dans le projet PREPARE permet de développer et d'exécuter sur une large gamme de calculateurs parallèles et de stations de travail des applications écrites en FORTRAN 90 [1] et High Performance Fortran (HPF) [2] : l'intégralité de la norme FORTRAN 90 ainsi que le sous ensemble officiel de HPF sont pris en compte. Le compilateur PREPARE produit directement du code exécutable pour diverses plate-formes sans passer par un code intermédiaire C ou FORTRAN 77, ce qui permet de générer un code efficace. De nouveaux modules pourront être aisément intégrés pour suivre l'évolution des standards du marché tant sur le plan du langage source que sur celui des plate-formes d'exécution. Le compilateur PREPARE sera disponible en novembre 1995. Une version de test est d'ores et déjà opérationnelle.
Le langage HPF a été défini comme une extension de FORTRAN 90. A part le constructeur FORALL qui est une généralisation de l'affectation tableau de FORTRAN 90, toutes les nouveautés de HPF sont des directives exprimées sous forme de commentaires. Ces directives sont utilisées pour spécifier le découpage et le placement des tableaux sur un ensemble de processeurs virtuels.
Trois éléments essentiels composent l'environnement PREPARE et sont totalement intégrés.
En amont du compilateur PREPARE, il est possible d'utiliser l'environnement de développement ObjectMath [3] pour générer du code FORTRAN 90 et HPF à partir d'une représentation orientée objet d'équations mathématiques. Ces équations sont décrites dans une extension du langage Mathematica.
L'ensemble du compilateur PREPARE repose sur la structure COSY développée dans le projet ESPRIT R&D COMPARE [4]. Cette technologie de compilation novatrice permet de réaliser des compilateurs optimiseurs particulièrement efficaces par assemblage et intégration de modules élémentaires. Ces modules travaillent sur une structure de données commune (représentation interne). L'ordre d'exécution des modules n'est pas figé et ne dépend que des besoins du compilateur. Ainsi certains modules peuvent même s'exécuter en parallèle augmentant la vitesse de compilation sur des stations de développement multi-processeurs. Grâce à cette structure modulaire, les compilateurs bâtis sur le modèle COSY bénéficient des derniers progrès du domaine et peuvent être aisément augmentés pour élargir leur champ d'application à de nouvelles machines cibles et à d'autres langages.
Dans le compilateur PREPARE, la représentation interne (PIR) a été soigneusement définie afin de pouvoir conserver les informations essentielles à la parallélisation, de réaliser des optimisations de code très poussées et d'assurer un dialogue convivial avec l'utilisateur. En particulier lors de chaque transformation du programme, la relation avec le code source est conservée : le compilateur dialogue ainsi avec l'utilisateur en faisant directement référence aux objets et instructions du programme source.
Les processus générés par le compilateur PREPARE communiquent par l'intermédiaire des primitives de la PAM (Prepare Abstract Machine). Actuellement, deux versions de la PAM existent : la première utilise MPI (interface standard pour la communication par messages [7]) et permet d'exécuter des programmes sur réseaux de stations de travail ; la seconde spécialement optimisée pour les machines Parsytec utilise directement les primitives PARIX. La première version est déjà terminée et la seconde sera disponible fin 1995.
Quelques projets de recherche sur la compilation de langages à parallélisme de données pour machines parallèles à mémoires distribuées:
Des chercheurs des équipes PANDORE et VFCS participent au projet PREPARE.