Here are papers and technical reports about the High Performance Fortran Language and its implementation. They date from a period in which I worked on an HPF compiler and on a compiler for extensions (similar to HPF) to OpenMP Fortran targeted to NUMA machines.
This paper describes the ideas behind the data structure used in the Digital Fortran/HPF compiler to manage data space, iteration space, and the relations between them. This paper was published in the Proceedings of the 27th Hawaii International Conference on System Sciences. Volume II: Software Technology, pages 33-42, 1994, by IEEE Computer Society Press.
This paper was published in the Digital Technical Journal in 1995. It described at a technical but relatively high level the architecture of the Digital HPF Compiler.
In the March 1998 issue of SIGPLAN Notices, Per Brinch Hansen published an article purporting to show that High Performance Fortran was a poorly designed and implemented language, unsuitable for parallel programming. This article, published in the August 1998 issue of SIGPLAN Notices, is a reply to Brinch Hansen. Each of his points is examined and shown to be false.
This paper shows how the natural way to pipeline iterations of dense linear algebra computations (for instance) can be discovered by a smart compiler given only the natural ("cyclic(n)") HPF data mapping directives, together with an extension of the notion of dependence to include what are in this paper called spatial dependences. The first part of the paper gives a clean and (to my mind, at any rate) elegant derivation and explanation of the algorithm for LU decomposition.
This paper actually has nothing to do with HPF per se, but was written because we needed a good dependence analyzer. I looked at the literature and wrote this purely expository paper which explained various techniques of dependence analysis and concluded that Pugh's Omega Test was, as might have been expected, the method of choice. The paper is discursive and can serve as an introduction to dependence analysis. It formed the basis for our dependence analysis code in the HPF part of the Digital Fortran compiler, and was later taken over for use more generally in the Compaq Fortran compiler.
This was the design report for the Transform components of the Digital Fortran Compiler; i.e., those components dealing with HPF data mapping directives and parallel constructs. The report describes the data structures and internal transformations needed to turn HPF code into SPMD code with message-passing, and describes the plethora of optimizations introduced in order to generate efficient code. It also contains discussion of the main design decisions that were made, both for compiler efficiency and for high-quality code generation, with explanations of the trade-offs that were considered.
The same technology was later extended to apply to OpenMP Fortran code with data mapping directives added for the purpose of generating efficient code on non-uniform memory access (NUMA) machines; that extension is also described in this report.