NPAC Technical Report SCCS-730
Compiling Fortran F90D/HPF for Distributed Memory MIMD Computers
Zeki Bozkus
Submitted June 1 1995
Abstract
Distributed memory multiprocessors are increasingly being used to provide
high performance for advanced calculations with scientific applications.
Distributed memory machines
offer significant advantages over their shared memory counterparts in terms
of cost and scalability, though it is widely accepted that they are
difficult to program given the current status of software technology.
Currently, distributed memory machines are programmed using a node language
and a message passing library. This process is tedious and error prone
because the user must perform the task of data distribution and communication
for non-local data access.
This thesis describes an advanced compiler that can generate efficient
parallel programs when the source programming language
naturally represents an application's parallelism.
Fortran 90D/HPF described in this thesis is such a language.
Using Fortran 90D/HPF, parallelism is represented with parallel constructs,
such as array operations, WHERE statements, FORALL statements,
and intrinsic functions.
The language provides directives for data distribution.
Fortran 90D/HPF gives the programmer powerful tools to express a problem
with natural data parallelism.
To validate this hypothesis, a prototype of Fortran 90D/HPF was implemented.
The compiler is organized around several major units: language parsing,
partitioning data and computation, detecting communication and generating
code.
The compiler recognizes the presence of communication
patterns in the computations in order to generate appropriate
communication calls. Specifically, this involves a number of tests
on the relationships among subscripts of various arrays in a statement.
The compiler includes a specially designed algorithm
to detect communications and to generate
appropriate collective communication calls to execute array assignments
and forall statements.
The Fortran 90D/HPF compiler performs several types of communication and
computation optimizations to improve the performance of the
generated code.
Empirical measurements show that the performance of the
output of the Fortran 90D/HPF compiler
is comparable to that of corresponding hand-written codes on several systems.
We hope that this thesis assists in the widespread adoption of parallel
computing technology and leads to a more attractive and powerful software
development environment to support application parallelism
that many users need.