Restructuring Compilers for Parallel Architectures

Members of the project team

Research objectives

A restructuring compiler is an important tool for retargeting existing serial software to parallel architectures. Existing restructuring compilers often lack flexibility: transformations are hard coded and there are no possibilities to control their application sequence, which means that these compilers behave like a black box that cannot be controlled. Also, these compilers are directed towards a certain target architecture. The goal of the present research effort is to enhance the flexibility of compilers in a number of ways. A restructuring compiler for full Fortran 77 is being developed that offers an interactive environment for the application of program transformations. The transformations themselves can be specified in a transformation definition language. This language is highly expressive accommodating all usual transformations. Transformations that are specific for a certain target architecture can be formulated making the compiler suitable for a range of architectures. The language also incorporates features for expressing global transformations. Furthermore, mechanisms are being studied for guiding the application of transformations by means of strategies. A strategy will select (semi) automatically an optimal sequence. These strategies in turn can be specified by the user, enabling the use of different strategies for different architectures.

Collaborations

Through the Esprit BRA project APPARC there exists collaboration with F. Bodin and W. Jalby (IRISA Rennes), M. Gerndt (KFA Juelich), and R.H. Perrot (Queen's University of Belfast).

Deliverables

An implementation of a powerful restructuring compiler, together with an interactive environment for program transformations consisting of a Transformation Definition Language, and a Transformation Application Engine. The definition of a range of transformations in the language.

Recent publications


Last modified on August 15, 1997 by Lex Wolters.