Next: Declaration of Extrinsic Program
Up: Extrinsic Program Units
Previous: Extrinsic Program Units
An HPF program may need to call a procedure implemented in a
different
programming model or in a different programming language. A
procedure's programming model might provide:
- a single logical thread-of-control where one copy of the
procedure is conceptually executing and there is a single locus of
control within the program text; this model is called global
when the underlying target hardware has (potentially) multiple
processors or memories and is called serial when the
underlying target hardware is treated as a uniprocessor (or a
single
node in a multiprocessor),
- multiple threads-of-control, one per processor, each thread
executing the same procedure; this model is called local or,
more generally, SPMD (Single Program, Multiple Data), or
- some other model, not discussed here, such as multiple
threads-of-control, perhaps with dynamic assignment of loop
iterations to processors or explicit dynamic process forking, where
there is, at least initially upon invocation, one copy of the
procedure that is conceptually executing but that may spawn multiple
loci of control, possibly changing in number over time, within the
program text.
A programming language provides a specific syntax (language
features), semantics (meanings), and pragmatics (purposes). Examples
of programming languages include Fortran (an ANSI and ISO
standard--the most recent revision is expected to be approved by
1997), HPF (a specification of extensions and restrictions to
Fortran), Fortran 77 (a previous ANSI and ISO standard), C, C++, Java,
Visual Basic, and COBOL.
A program unit's language and model, when taken together, constitute
its extrinsic kind. This extrinsic kind may be specified
explicitly by an extrinsic-prefix or implicitly by the
selection of a compiler and its invocation with a particular set of
compiler options. Thus, one might view the compiler as providing a
host scoping unit as defined by Fortran. For example, a program
unit compiled by an HPF compiler will be of extrinsic kind
HPF. Alternatively, its extrinsic kind may be specified
explicitly by an extrinsic-prefix such as
EXTRINSIC(HPF)
or
EXTRINSIC(LANGUAGE="0DHPF"0D,MODEL="0DGLOBAL"0D)
.
Next: Declaration of Extrinsic Program
Up: Extrinsic Program Units
Previous: Extrinsic Program Units
Logan Ratner
Wed Mar 19 15:53:20 CST 1997