|Volume 7, Issue 1 -
Overview of the Fortran Parallel Programming Tools Project
A. Carle, K. Kennedy, C. Koelbel, J. Mellor-Crummey, S. Warren, Rice University
The Fortran Parallel Programming Tools Project, through funding from the NSF and ARPA, is engaged in a three-year program of research to design and construct a suite of research prototype software tools. Known as the D system, these tools will support development of parallel programs written in Fortran D, a dialect of Fortran annotated with data decomposition directives. The D system will assist scientists in the development of high-performance, machine-independent programs for parallel machines, while insulating them from the low-level details of parallel systems.
Fortran D is an abstract language for expressing parallel programs. As such, it supports a single-threaded programming model based on a global name space. Using Fortran D, a programmer writes a Fortran program embodying a parallel algorithm and then specifies how its arrays are to be distributed across the processors of a parallel machine. A sophisticated compiler then transforms the abstract program to a low- level SPMD (Single Program Multiple Data) program for a particular target architecture by decomposing the principal array data structures and adding communication statements necessary to explicitly manage local name spaces on a distributed-memory parallel machine.
Fortran D was a major impetus behind the recently-distributed informal standard for High Performance Fortran (HPF). The Fortran D compilers produced by the CRPC are being used as models for several commercial HPF compilers. It is the D research group's goal for the D system to serve as a model for future efforts by vendors, as well.
Developing efficient programs in languages such as Fortran D can be particularly challenging since comprehending the performance implications of small perturbations of the program at the source level requires a deep understanding of the compiler technology upon which the language implementation is based. In particular, understanding the impact of data distributions on the data parallelism that will be realized by the compiler is vitally important for users to be able to write efficient programs.
The primary focus of the D research group is on developing program analysis infrastructure to support an intelligent editor that will provide users with detailed information about how effectively an underlying compiler implementation can exploit data parallelism in the program. The D tools effort will focus on development of three tools: an intelligent editor, a source-level debugger, and a performance analyzer. The D editor will bring together a wide range of program analysis technology including program dependence analysis, static performance estimation, dynamic performance information, and automatic data distribution. The D debugger will support debugging code that has been radically restructured from being transformed from a single-threaded source program to an SPMD node program. The D performance analyzer will collect information about an execution of an SPMD execution and present the information gleaned in terms of the original single-threaded program source.
According to CRPC Director Ken Kennedy, "If the D tools project achieves its goals, programming parallel computers in Fortran D and HPF will be nearly as easy as programming for vector supercomputers is today."
Table of Contents