Parallel FORTRAN(ID:4051/par016)


Parallel FORTRAN

Parallel Computing Forum (PCF) 1990


Related languages
Fortran 8x => Parallel FORTRAN   Extension of

References:
  • Parallel Computing Forum " Parallel FORTRAN Draft of Proposed Standard #8713010" 01/21/90 view details External link: Online copy at UIC Abstract: This document is a  draft of a standard for Parallel  Fortran,  prepared by the Parallel Computing Forum (PCF).   It was constructed  as an effort to provide a uniform way  of parallelizing Fortran programs  so that the constructs  used to formulate the parallelism present  in a program would look the  same on various machines that can execute Fortran in parallel (such as certain IBM 3090s,  Cray
    X-MP and Y-MPs, etc.).

    The frame of mind  in which this standard was put together  is described in the Forward, which is followed by a Table of Contents.   The topics covered by this draft include  basic parallel  constructs,  explicit  synchronization,  storage management,  parallel regions,   details about certain specific  conditions,  a
    discussion of intrinsic functions,  a glossary,  and "dead features",  that is, features considered for inclusion in the standard but rejected.

    The PCF consists of representatives from  various vendors who make the machines on which  Fortran can execute in  parallel and several universities  which have strong research interests in this area.
    Extract: Forward
    Forward

    This proposed standard was constructed as an effort to provide a uniform spelling of well understood parallel constructs.  There was a conscious effort to resist the lure of new constructs unless the evolutionary path from existing practice was clear.

    The only reason that one bothers with the complexity of parallel processing is performance.  Hence, any definition of parallel constructs must be judged by the ability of the programmer to achieve performance by reasonable application of these constructs.  Another constraint must be considered as well.  Most programming is done by people that are trying to solve problems in fields other than computer science.  This means that it is unreasonable to assume that the average programmer has a deep understanding of the actual machine.

    All of the parallel constructs should feel Fortran-like to the programmer.  This means that they should be easy to understand, normally generate efficient code, and if some functionality is necessary but expensive, isolate the expense in a construct so that the programmer can easily learn when something expensive is being coded.

    The portability of applications written using these parallel constructs is a primary concern.  This portability cannot be achieved by sacrificing performance.  What is needed from this proposed standard is portable performance from the exploitation of parallelism.  It is understood that optimal performance on certain machines may not be achieved by initial implementations.

    The target machine is assumed to be a shared-memory parallel processor.  One of the reasons that the shared-memory model was selected was the existing experience in extending Fortran for such machines.  Another reason was the shared-memory model allows the programmer to ignore the data partitioning problem that must be addressed for the typical distributed-memory models.  Note that it is not necessary that the machine actually be a shared-memory parallel processor.  This is simply the model presented to the programmer.

    Underlying all of the design decisions was the old saying:

                    Keep It Simple, Stupid!