The use of certain constructs causes some portion (possibly all) of
a program not to execute in parallel. Nonparallel execution occurs
in the following situations:
- In the current implementation of Digital Fortran 90, all I/O operations are serialized
through a single processor. See Sections 7.11 and Section 7.11.1.
- The assigning of certain attributes to a variable (including
a dummy argument to a procedure) causes the variable to be
replicated across all processors. These attributes are listed
in the Release Notes. Data mapping directives are ignored for
such variables.
- Date and time intrinsics are not handled in parallel. The
reason for single-processor execution of these routines is to
ensure that a reliable time-stamp is returned. These intrinsics
are listed in the Release Notes.
- Certain other conditions that force nonparallel execution are
listed in the Release Notes.
If one of these situations applies to an expression, the entire
statement containing the expression is executed in a nonparallel
fashion. This can cause performance degradation. Digital recommends avoiding the use of constructs or
variables to which the above conditions apply in the computationally
intensive kernel of a routine or program.