Interprocedural analyses IPA are becoming more and more common in commercial compilers. But research on the analysis of Fortran programs is still going on, as a number of problems are not yet satisfactorily solved and others are emerging with new language dialects. This paper presents a survey of th
Interprocedural Compilation of Fortran D
โ Scribed by Mary W. Hall; Seema Hiranandani; Ken Kennedy; Chau-Wen Tseng
- Publisher
- Elsevier Science
- Year
- 1996
- Tongue
- English
- Weight
- 475 KB
- Volume
- 38
- Category
- Article
- ISSN
- 0743-7315
No coin nor oath required. For personal study only.
โฆ Synopsis
Its goal is to provide a machine-independent programming model for data-parallel applications that shifts the burden of machine-dependent optimizations to the compiler. Fortran D has contributed to the development of High Performance Fortran (HPF), an emerging Fortran standard for programming parallel architectures [25]. Because the HPF INHERIT attribute allows procedures to inherit the data decomposition of its callers in the same manner as in Fortran D, the interprocedural analyses and optimizations presented in this paper are also directly applicable to HPF.
To evaluate the Fortran D and HPF programming model, we implemented a prototype Fortran D compiler in the context of the ParaScope programming environment [7]. Previous work describes the implementation of the prototype compiler [22]; experimental results show that for many programs, the Fortran D compiler produces output that approaches the quality of hand-optimized code [23,28]. However, it requires deep analysis since programs for distributed-memory machines must explicitly communicate data between processors. The Fortran D compiler must know both when a computation may be performed and where the data and computation is located. It is thus severely restricted by the limited program context available at procedures. This limitation is unfortunate since procedures are desirable for modularity, readability, code reuse, and maintainability.
Interprocedural analysis and optimization algorithms have been developed for scalar and shared-memory parallelizing compilers, but are seldom implemented due to their complexity and expense. For distributed-memory compilers, interprocedural analysis and optimization can no longer be considered a luxury, since the cost of making conservative assumptions at procedure boundaries is unacceptably high. Interprocedural compilation of data-placement languages such as Fortran D or HPF is complex, because it encompasses all existing interprocedural analysis in shared-memory compilers and requires solving additional new problems. In this paper, we present a comprehensive approach to interprocedural compilation of Fortran D that is both powerful and efficient.
This paper makes a number of original contributions. Previous researchers have developed efficient interprocedural analyses for shared-memory compilers [7], provided some interprocedural analysis for distributed-memory
๐ SIMILAR VOLUMES
Fortran D is a version of Fortran enhanced with data decomposition specifications. Case studies illustrate strengths and weaknesses of the prototype Fortran D compiler when compiling linear algebra codes and whole programs. Statement groups, execution conditions, inter-loop communication optimizatio
Algorithm 1 (Compiling Align directives) Input: Fortran 90D/HPF syntax tree with some alignment functions to template Output: Fortran 90D/HPF syntax tree with identical alignment functions to template Method: For each aligned array, and for each dimension of that array, carry out the following ste