![]()
contact for IRISA: J.-L. Pazat
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
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 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:
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 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.
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.
Researchers from the PANDORE and VFCS groups are working within the PREPARE Project.