Our Syracuse University group, along with colleagues at Rice University have designed the Fortran D language [1]. Fortran D is a version of Fortran that is enhanced with a rich set of data decomposition specifications Standard Fortran 90 with these extensions is called ``Fortran 90D'', a Fortran 90 version of the Fortran D language. There is an analogous version of Fortran 77 with compiler directives and other constructs for use of parallel system, called Fortran 77D. Rice University implemented Fortran 77D compiler. Our group at Syracuse University implemented Fortran 90D compiler. Recently, the High Performance Fortran Forum, an informal group of people from academia, industry and national labs, led by Ken Kennedy, developed a language called HPF[2] based on Fortran D. HPF uses standard Fortran 90 as base language. Hence, Fortran 90D and HPF becomes very similar. For this reason, we call the Fortran 90D language as Fortran 90D/HPF. The core part of this thesis does not claim to design a language such as Fortran 90D/HPF, but claims to design a compiler for Fortran 90D/HPF language.
This chapter presents the Fortran 90D/HPF language, concentrating on its strategy for expressing data parallelism and mapping data to the underlying parallel architecture. The chapter discusses a number of language issues including the crucial language features for partitioning data. Because data partitioning ultimately determine the shape of the resulting code by defining the computation partitioning and communication, we start by describing the data distribution.