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

Fortran M Language Provides Modular Parallel Programming

Ian Foster, Mathematics and Computer Sciences, Argonne National Laboratory; and K. Mani Chandy, California Institute of Technology


Ian Foster and Mani Chandy have created message-passing extensions to sequential programming languages that enforce both deterministic execution and information hiding, while retaining much of the flexibility of traditional message-passing. Researchers specifically addressed the Fortran language by creating Fortran M, a small set of extensions to Fortran 77.

These "modular" extensions provide several needed features. Parallel programs can be constructed by using explicitly declared communication channels to combine existing modules. The modules, referred to as processes, encapsulate common data, subprocesses, and internal communication. Operations on channels are restricted so as to guarantee deterministic execution, and channels are typed so that the compiler can check for correct usage.

Fortran M also provides architecture independence. The mapping of processes to processors is specified by annotations that affect performance, not correctness, and can be specified with respect to a virtual computer, with a size and shape different from that of the target computer. Furthermore, Fortran M can be compiled efficiently on several kinds of machines, including vector, shared-memory, and distributed-memory computers, as well as networks of workstations. Because message-passing is incorporated into the language, a compiler can optimize both communication and computation.

A more in-depth article on Fortran M and on CC++ will appear in a future issue of Parallel Computing Research.


Table of Contents

News | From the Director | Research Focus | Work in Progress | Education / Outreach | Resources | Calendar | CRPC Home