logo irisa


PREPARE : (Projet Esprit EP 6516)

Un environnement de programmation pour HPF et FORTRAN 90

contact pour l'IRISA : J.-L. Pazat


English version

Résumé

Le projet Esprit R&D PREPARE a pour but la réalisation d'un environnement de programmation de qualité industrielle pour les langages FORTRAN 90 et High Performance Fortran. Cet environnement intégré comprend une interface utilisateur conviviale couplée à un compilateur performant. Ce projet est développé par un consortium composé de quatre partenaires industriels et de six centres de recherche européens.
Le projet PREPARE
L'environnement PREPARE
Un compilateur modulaire
Autres travaux
Bibliographie

Le projet PREPARE

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 PREPARE

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.

PREPARE : Un compilateur modulaire

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.

Autres travaux

Quelques projets de recherche sur la compilation de langages à parallélisme de données pour machines parallèles à mémoires distribuées:

Pandore (IRISA)
Vienna Fortran Compilation System (University of Vienna)
Fortran D (Rice University)
EPPP (CRIM Montreal)
Adaptor (GMD)

Des chercheurs des équipes PANDORE et VFCS participent au projet PREPARE.

Bibliographie

1
ISO/IEC: Information technology - Programming Languages - Fortran. ISO/IEC International Standard ISO/IEC 1539. 2e édition, Juillet 1991.
2
High Performance Fortran Forum. High Performance Fortran Language Specification, Rapport technique, Version 1.1, Rice University, Houston, Texas, Novembre 1994.
3
P. Fritzson and N. Andersson. Generating parallel code from equations in the ObjectMath programming environment. Jens Volkert, editor, Parallel Computation, number 734; LNCS, pages 217-232. Springer-Verlag, 1993.
4
M. Alt, U. Aßmann, and H. van Someren. Cosy Compiler Phase embedding with the CoSy Compiler Model. 5th Int. Conf., CC'94, Edinburgh, LNCS, Vol. 786, Avril 1994, pages 278-293.
5
P. Brezany, O. Chéron, K. Sanjari, and E. van Konijnenburg. Processing Irregular Codes Containing Arrays with Multi-Dimensional Distributions by the PREPARE HPF Compiler. A paraître dans HPCN Europe'95, Milan, Italie, 2-5 Mai 1995.
6
C. van Reeuwijk, H.J. Sips, W. Denissen, and E.M. Paalvast. Implementing HPF distributed arrays on a message passing parallel computer system. Soumis à IEEE Transactions on Parallel and Distributed Systems.
7
MPI: A Message-Passing Interface Standard. Message Passing Interface Forum. Mai 1994.
8
A. Veen, and M. de Lange. Overview of the PREPARE Project. 4th Int. Workshop on Compilers for Parallel Computers, Delft, Pays bas, Decembre 1993, pages 345-350.

The PREPARE Consortium, prepar@irisa.fr (March 23, 1995)