The aims of this project are to complete the development of a Subset High Performance Fortran (HPF) compiler, 'ADAPT', which generates Fortran 90 output with calls to a purpose-built communications library, 'ADLIB', and to use this system as a platform for the research and development of optimisations for HPF compilation. The run-time library, ADLIB, is being developed in a separate JISC-NTI-funded project. The HPF compilation system produced by these projects will be made freely available to the research community and will also be distributed by our 'heavy uncle' NAG Ltd.Progress: The first version of the HPF compilation system is currently nearing completion. It comprises a compiler which generates Fortran 90 output, ADAPT, being developed in this project, together with a run-time library for array-based communications, ADLIB, which is being developed in a project funded by the JISC New Technology Initiative (NTI).For the first version of the compiler, ADAPT, we have already developed and employed some 'basic' optimisations. Arrays are stored and subscripted in a manner which reduces the presence of 'holes' in storage which may arise as a consequence of HPF ALIGNment. Care has been taken to minimise the size and use of array temporaries. Advanced simplifying transformations are performed on internally-generated subscript expressions, DO-loop ranges, etc, in order to reduce the run-time cost of computing them. Extensive analysis is performed to detect co-location of array sections so as to minimise the generation of tentative data remapping operations. In suitable situations, the generated code achieves concurrent execution of different array assignments as well as data parallelism within array operations. Finally, ADAPTs memory requirements are minimised by efficient garbage collection. Along with this compiler development we have also investigated schemes for efficiently allocating computation to processors - HPF only provides information on the placement of data, not of computation. Our aim is to develop schemes to supersede the currently widely-used, but crude, 'owner computes' rule. This is being done in the context of expression evaluation in FORALL statements, which are the most general form of data parallel assignment. We have performed some experiments on calculation placement heuristics using Prolog. This research is ongoing and will not be implemented in the first release of the system, though it will be in a later version. In mid-March a 'beta' version of the system will be distributed by our partner project to a number of test sites, namely the 6 JISC-NTI training and education centres, NAG Ltd., and NPAC in the USA. Subsequently it will be made freely available in the public domain, and NAG Ltd. also intend to distribute it. The system should be widely portable, requiring only a Fortran 90 compiler and support for MPI, in which ADLIBs message-passing is encoded, for which a public domain implementation is available for a wide variety of platforms. In the next few months after this release, research will continue on calculation placement strategies. This research will be presented in two papers to be delivered at the 'Fifth International Workshop on Compilers for Parallel Computers' in Malaga on 28-30 June.
|