Volume 7, Issue 1 -
Spring/Summer 1999

Volume 6, Issue 3
Fall 1998

Volume 6, Issue 2
Spring/Summer 1998

Volume 6, Issue 1
Winter 1998

Volume 5, Issue 4
Fall 1997

Volume 5, Issue 3
Summer 1997

Volume 5, Issue 2
Spring 1997

Volume 5, Issue 1
Winter 1997

Volume 4, Issue 4
Fall 1996

Volume 4, Issue 3
Summer 1996

Volume 4, Issue 2
Spring 1996

Volume 4, Issue 1
Winter 1996

Volume 3, Issue 4
Fall 1995

Volume 3, Issue 3
Summer 1995

Volume 3, Issue 2
Spring 1995

Volume 3, Issue 1
January 1995

Volume 2, Issue 4
October 1994

Volume 2, Issue 3
July 1994

Volume 2, Issue 2
April 1994

Volume 2, Issue 1
January 1994

Volume 1, Issue 4
October 1993

Volume 1, Issue 3
July 1993

Volume 1, Issue 2
April 1993

Volume 1, Issue 1
January 1993

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