A user level program transformation tool

Code maintenance, tuning or parallelization on high performance computers are very time consuming. They usually involve many program transformations. These transformations range from very simple ones (i.e. changing array accesses) to very complex ones (i.e. parallelism and data locality optimizations [ll, 21). Furthermore these transformations are usually based on information extracted either statically (i.e. data flow and data dependence analysis [S]) or dynamically (i.e. via program instrumentation [5]). Most of the currently available tools, compiler, parallelizer, preprocessor, profilers, etc. cover part of the needs but they suffer from a major drawback: they cannot be easily extended. Extensibility allows the user (i.e. an application developer in our case) to add new program transformations specific to his application context. However adding new features must be possible without having an intimate knowledge of the tool implementation nor having to modify the source code or to link to it. In this paper we present a new program transformation infrastructure, called TSF, for application developers. This infrastructure is build on top of an existing Fortran engineering tool named FORESYS [23]. In the following we overview the related tools and the main features of the TSF transformation scripts. We conclude this section by an overview of the paper.

[1]  Christoph W. Kessler Pattern-driven automatic program transformation and parallelization , 1995, Proceedings Euromicro Workshop on Parallel and Distributed Processing.

[2]  Constantine D. Polychronopoulos,et al.  The structure of parafrase-2: an advanced parallelizing compiler for C and FORTRAN , 1990 .

[3]  Bruce Leasure,et al.  The KAP Parallelizer for DEC Fortran and DEC C Programs , 1994, Digit. Tech. J..

[4]  Christoph W. Kessler,et al.  Automatic Parallelization by Pattern-Matching , 1993, ACPC.

[5]  Utpal Banerjee,et al.  Dependence analysis for supercomputing , 1988, The Kluwer international series in engineering and computer science.

[6]  Michael Gerndt,et al.  SUPERB: A tool for semi-automatic MIMD/SIMD parallelization , 1988, Parallel Comput..

[7]  Monica S. Lam,et al.  Global optimizations for parallelism and locality on scalable parallel machines , 1993, PLDI '93.

[8]  Michael Gerndt,et al.  Advanced tools and techniques for automatic parallelization , 1988, Parallel Comput..

[9]  William Jalby,et al.  A strategy for array management in local memory , 1994, Math. Program..

[10]  Agnar Aamodt,et al.  Case-Based Reasoning: Foundational Issues, Methodological Variations, and System Approaches , 1994, AI Commun..

[11]  James R. Larus,et al.  Optimally profiling and tracing programs , 1992, POPL '92.

[12]  Beniamino Di Martino,et al.  PAP Recognizer: a tool for automatic recognition of parallelizable patterns , 1996, WPC '96. 4th Workshop on Program Comprehension.

[13]  Christoph W. Kessler Pattern-Driven Automatic Parallelization , 1996, Sci. Program..

[14]  Peter Norvig,et al.  Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp , 1991 .

[15]  Ken Kennedy,et al.  The parascope editor: an interactive parallel programming tool , 1993, Proceedings of the 1989 ACM/IEEE Conference on Supercomputing (Supercomputing '89).

[16]  D. Y. Cheng Evaluation of Forge: an interactive parallelization tool , 1992, Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences.

[17]  Rudolf Eigenmann,et al.  Polaris: A New-Generation Parallelizing Compiler for MPPs , 1993 .