|Volume 7, Issue 1 -
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