Transforming Data - parallel Fortran 90 / HPF Constructs Into aUniform Internal Representation
نویسندگان
چکیده
As a part of the PREPARE High Performance Fortran compiler, a component has been designed and implemented which transforms an abstract, high-level internal representation of For-tran90/HPF programs to a medium-level internal form. Normalizations and pre-optimizations are applied to simplify the task of the subsequent compiler phases. This paper describes a selection of translation techniques for data-parallel statements which were developed in this context. 1 Background This paper focuses on one speciic component of the PREPARE HPF compiler. The context (other compiler components, data structures, the CoSy compiler generation environment) cannot be described here { see 1], 2], 3], 4], 5], 6], 7] for more information. To understand the methods presented here it is most important to know that the PREPARE compiler, unlike many other HPF systems, is not a source-to-source translator but a real compiler: it translates the source program to an internal representation which is then subject to several complex transformations; at the end, native SPMD code is generated for the target architecture. The role of the HPT (HIR-to-PIR-Transformer) compiler component is to transform a high-level internal representation (HIR) of the Fortran90/HPF program being compiled into a normalized medium level internal representation (PIR, Prepare Internal Representation) the remaining compiler components will be operating on. Input to the HPT is the high-level internal representation (HIR) of a Fortran90/HPF program as generated by the GMD Fortran90/HPF front-end (see 8], where the HIR is simply called "IR"). The HPT component performs its job while recursively descending the input HIR tree. Thus saying that, e.g. a FORALL construct is being transformed means that a list of statements is analysed and the current one is a FORALL. HPT's output is a PIR program unit which contains, amongst others, a list of types, a list of procedure units, a list of globals declarations, etc. A procedure unit, amongst others, contains: a list of locals declarations and a body which is a list of basic blocks. In turn, a basic block entails a list of statements. Thus, stating below that HPT generates a statement, we mean that the corresponding PIR subtree is beeing created and appended to the statement list of the currently created basic block of the currently created procedure, etc. The PIR is an extension of CCMIR, the central IR of CoSy, to accomodate the requirements of HPF and SPMD execution.
منابع مشابه
Array Operation Synthesis to Optimize HPF Programs
An increasing number of programming languages, such as Fortran 90, HPF, and APL, are providing a rich set of intrinsic array functions and array expressions. These constructs which constitute an important part of data parallel languages provide excellent opportunities for compiler optimizations. The synthesis of consecutive array operations or array expressions into a composite access function ...
متن کاملVisual edition of HPF mappings
Fortran 90 is the actual standard in term of data parallel language for scientiic computing. To develop a data parallel algorithm on a distributed memory machine, programmers generally use the High Performance Fortran extension of Fortran 90, in particular the data mapping directives. HPF-Builder graphical environment goal is to free the HPF programmers of all the syntactic constraints due to t...
متن کاملStep By Step Transformation of a Fortran 90 Program in HPF, using HPF-Builder
Fortran 90 is the actual standard in term of data parallel language for scientiic computing. To develop a data parallel algorithm on a distributed memory machine, programmers generally use the High Performance Fortran extension of Fortran 90, in particular the data mapping directives. HPF-Builder8] graphical environment goal is to free the HPF programmers of all the syntactic constraints due to...
متن کاملHpf-Builder: a Visual Environment To Transform Fortran 90 Codes To Hpf
FORTRAN 90 is the actual standard in term of data parallel language for scientiic computing. To develop a data parallel algorithm on a distributed memory machine, programmers generally use the High Performance FORTRAN extension of FORTRAN 90, in particular the data mapping directives. HPF-Builder graphical environment goal is to free the HPF programmers of all the syntactic constraints due to t...
متن کاملSymbol Table Management in an HPF Debugger
In this paper we present a functionality and a structure of a symbol table manager for debugging HPF programs. The manager retrieves information from executable les generated by diierent Fortran 77/90 and HPF compilers and converts it into an internal representation independent of le format, which is accessed by the debugging system.
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007