๐”– Bobbio Scriptorium
โœฆ   LIBER   โœฆ

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


Interprocedural analyses of Fortran prog
โœ B Creusillet; F Irigoin ๐Ÿ“‚ Article ๐Ÿ“… 1998 ๐Ÿ› Elsevier Science ๐ŸŒ English โš– 288 KB

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

Performance of the Prototype Fortran D C
โœ CHAU-WEN TSENG ๐Ÿ“‚ Article ๐Ÿ“… 1997 ๐Ÿ› John Wiley and Sons ๐ŸŒ English โš– 667 KB

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

Compiling Fortran 90D/HPF for Distribute
โœ Z. Bozkus; A. Choudhary; G. Fox; T. Haupt; S. Ranka; M.Y. Wu ๐Ÿ“‚ Article ๐Ÿ“… 1994 ๐Ÿ› Elsevier Science ๐ŸŒ English โš– 1013 KB

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