PREPARE: (ESPRIT project EP 6516)

A Programming Environment for HPF and FORTRAN 90

contact for IRISA: J.-L. Pazat


Version française

Overview

The ESPRIT R&D project PREPARE builds a compiler for Fortran 90 and High Performance Fortran that meets industrial quality standards. A user-friendly interface and an efficient compiler are integrated in this programming environment. This European project is developed by a consortium of four industrial partners and six research centers.

This document updates the description of Prepare given in [8].

The PREPARE project
The PREPARE environment
The PREPARE Compiler
Related Work
Bibliography

The PREPARE Project

ESPRIT is a Program of the Commission of the European Communities in the field of Information Technology to stimulate cooperation between member states as well as between industry and academia. One of the primary aims of ESPRIT R&D in the area of High Performance Computing is to develop parallelizing compilers for standardized languages. In this context it has funded the Prepare project.

The Main Contractor is the compiler manufacturer ACE (The Netherlands). Other industrial partners are Steria (France), SoftLab (Sweden) and Parsytec (Germany). Academic partners are from GMD-FIRST (Germany), IRISA (France), PELAB (Sweden), TNO-TPD (The Netherlands), TUM (Germany) and the University of Vienna. The total man power of this project is 69 man-year; it began in July 1992 and will be achieved in April 1996.

The PREPARE Environment

The objective of PREPARE is to build a programming environment in which Fortran 90 [1] and High Performance Fortran (HPF) [2] programs can be developed and restructured in a machine-independent fashion and executed on a massively parallel MIMD machine. The full Fortran 90 standard and the official subset of HPF are supported by the PREPARE compiler. The PREPARE compiler will be available by November 1995. A beta-test version of the compiler is already running.

HPF is an extension of Fortran 90 containing a set of compiler directives that specify how arrays are to be distributed over a set of processors. Most of these directives do not influence the semantics of the program. The only syntactic extension to Fortran 90 consist of the FORALL construct, which allows a more liberal expression of the Fortran 90 array assignment.

The PREPARE environment is based on three tightly integrated components:

  • a parallelizer that transforms the original data-parallel form of the source program into Single Program Multiple Data (SPMD) form,
  • an Interactive Engine that reports to the programmer to what extent the system can parallelize the program, indicates the obstacles preventing parallelization, facilitates the removal by the programmer of such obstacles and provides performance measures, and
  • an efficient Compilation System that generates highly optimized code that fully exploits the intra-processor parallelism of the target machine.
  • The ObjectMath environment [3] enables scientists and engineers to describe their models in a high level object-oriented equational representation. It allows to translate mathematical equations into HPF and thus can be used as a front-end in the PREPARE environment.

    The PREPARE Compiler

    The compilation system used in PREPARE is based on the CoSy model developed in the sister project COMPARE [4]. It is an innovative compilation system that makes it possible to configure highly optimizing compilers from a large set of building blocks called engines. These engines work concurrently on a shared Internal Representation of the program gradually enriching it with analysis information. On a (shared memory) parallel host the engines work in parallel making it possible to implement very computation intensive optimizations.

    Thanks to this modular structure, compilers based on the CoSy mechanism can be easily upgraded in order to support new parallel computers as well as new language standards.

    In the PREPARE compiler, all components communicate with each other through the Internal Representation. Its level has been carefully chosen to be appropriate both for engines that work with features that are close to the source program (such as the Parallelization Engine or the Interactive Engine) as well as for low-level engines (such as traditional optimizers or code generators). To be able to communicate with the user in terms of the original source code an elaborate mechanism is implemented that maintains appropriate Source Level Origin pointers even during extensive program transformations.

    The generated code runs on top of the Prepare Abstract Machine (PAM). Today, two versions of the PAM exist: for the sake of portability, the first one uses MPI (Message Passing Interface)[7] and supports execution on workstation networks. The other one uses PARIX primitives and is highly optimized for Parsytec computers. The first version is already running and the second one will be avalaible by the end of 1995.

    Related Work

    Research projects addressing the definition and the implementation of programming environments for running data parallel programs on distributed MIMD computers are listed below. See our local HPF Europe Home Page and HPFF Home Page for other related projects.

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

    Researchers from the PANDORE and VFCS groups are working within the PREPARE Project.

    Bibliography

    1
    ISO/IEC: Information technology - Programming Languages - Fortran. ISO/IEC International Standard ISO/IEC 1539. Second edition, July 1991.
    2
    High Performance Fortran Forum. High Performance Fortran Language Specification, Technical Report, Version 1.1, Rice University, Houston, Texas, November 1994.
    3
    P. Fritzson and N. Andersson. Generating parallel code from equations in the ObjectMath programming environment. In Jens Volkert, editor, Parallel Computation, number 734 in 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, April 1994, pp.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. To appear in HPCN Europe'95, Milan, Italy, 2-5 May 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. Submitted to "IEEE Transactions on Parallel and Distributed Systems".
    7
    MPI: A Message-Passing Interface Standard. Message Passing Interface Forum. May 5, 1994.
    8
    A. Veen, and M. de Lange. Overview of the PREPARE Project. 4th Int. Workshop on Compilers for Parallel Computers, Delft, The Netherlands, December 1993, pp: 345-350.


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