NAME
pghpf - Portland Group High Performance Fortran compiler.
SYNOPSIS
pghpf [ -Mflag ] [ -f77_flags ] sourcefile...
DESCRIPTION
pghpf is the interface to the Portland Group High Perfor-
mance Fortran (HPF) compiler. pghpf invokes the High Per-
formance Fortran Compiler, a Fortran 77 compiler, assembler,
and linker with options derived from its command-line argu-
ments. Fortran 77 options are valid with pghpf.
pghpf bases its processing on the suffixes of the files it
is passed. Files whose names end with .hpf, .f, .for or
.f90 are taken as High Performance Fortran source files.
They are compiled and assembled. Files whose names end with
.F are also considered High Performance Fortran source
files, but they are first preprocessed by the C preproces-
sor. Files whose names end with .s are considered to be
assembly language files. Files whose names end with .o are
taken as object files, and are passed directly to the linker
if linking is requested. Files whose names end with .a are
taken as ar libraries. No action is performed on .a files
unless linking is requested.
Files not ending in .o, .s, .f, .f90, .for, .F, .hpf, or .a
are taken as object files and passed to the linker (if link-
ing is requested) with a warning message.
Unless one overrides the default pghpf action using a
command-line option, pghpf deletes intermediate Fortran 77,
assembly, and object files (see the option -Mkeepftn).
PGHPF OPTIONS
When debug files are compiled using the - Mg, option, the
same option(s) should be used when using pghpf to link the
objects.
-Mflag Options flags for pghpf compiler. The flag argu-
ment may be any of the following:
[no]autopar[=option[,option,...]]
The compiler generates FORALL statements
and calls to reduction intrinsics when
parallel DO-loops with distributed
arrays are discovered.
Loop interchange and distribution may be
performed to increase the number of
parallel loops. Information about paral-
lelization is displayed with the -
Minfo=autopar command-line switch. The
option - Mnoautopar disables automatic
parallelization that the compiler per-
forms in loops marked with the HPF
INDEPENDENT directive.
The optional arguments for autopar are
as follows:
noassoc | assoc
noassoc prevents recognition
of reductions. Programs in
which results are sensitive to
the order in which operations
are performed will require
this switch. The argument
assoc allows recognition of
reductions and is the default.
levels:n specifies the maximum nesting
depth, n, of loops that get
auto-parallelized. By default,
the maximum nesting depth is
3.
[no]backslash
With the backslash option, the compiler
recognizes a backslash as an escape
character in quoted strings (in accor-
dance with standard C usage). With
nobackslash, the compiler treats a
backslash in quoted strings as a normal
character, and not as an escape charac-
ter.
cmf Provides limited support for CM Fortran
compatibility. Where there is no chance
for ambiguity, pghpf supports both the
CM Fortran and HPF spellings of common
Fortran 90 features. This includes sup-
port for the intrinsics DOTPRODUCT,
DLBOUND, DUBOUND, and DSHAPE which have
calling sequences identical to their
Fortran 90 counterparts. It also
includes support for the CM Fortran
method of using square brackets in the
definition of array constructors and the
use of the ARRAY keyword in place of the
Fortran 90 standard DIMENSION keyword.
There are three CM Fortran intrinsics
which have names identical to their For-
tran 90 counterparts but whose calling
sequences differ. These are CSHIFT,
EOSHIFT, and RESHAPE. If pghpf is
invoked with -Mcmf these intrinsics will
be interpreted using the CM Fortran con-
vention rather than the standard Fortran
90 convention. There are six additional
non-standard intrinsics in CM Fortran:
PROJECT, LASTLOC, FIRSTLOC, RANK, DIAGO-
NAL, and REPLICATE. These non-standard
intrinsics are not currently supported
by pghpf. Other features of CM Fortran
that are not supported are the layout
directives and the utility routines.
[no]dclchk
Determines whether all program variables
must be declared.
[no]depchk
With nodepchk the compiler does not
check for potential data dependencies
between ambiguous array references.
Note, with nodepchk, if data dependen-
cies exist, this option can produce
incorrect code.
[no]dlines
The compiler treats lines containing "D"
in column 1 as executable statements
(ignoring the "D"). With nodlines the
compiler does not treat lines containing
"D" in column 1 as executable statements
(does not ignore the "D").
extend Allow 132-column source lines.
freeform Process source using Fortran 90 freeform
specifications.
extract=[option[,option,...]]
Pass options to the function extractor.
The -o filename option must be used with
this switch to name an extract library.
See the option -Minline for more details
on the pghpf procedure extractor.
[name:]function
A non-numeric option not con-
taining a period is assumed to
be a function name. The named
function is extracted. If
name: is specified, what fol-
lows is always the name of a
function.
ftn Stop after HPF compiling. Keep inter-
mediate Fortran 77 file(s).
g Set the debug option -g, as well as the
- Mkeepftn option, and in addition
suppress HPF line numbers in the gen-
erated Fortran 77 intermediate file to
make debugging of the Fortran 77 output
easier.
info[=option[,option,...]]
Emit useful information to stderr. The
options are:
autopar Emit compilation information
on parallelization of DO
loops.
time | stat
Emit compilation statistics.
loop Emit information about loops.
This includes information
about loop unrolling and vec-
torization.
all Emit all of the above informa-
tion.
inform,level
Instructs the compiler to display error
messages at the specified and higher
levels, where level is one of the fol-
lowing:
fatal instructs the compiler to
display fatal error messages.
severe instructs the compiler to
display severe and fatal error
messages.
warn instructs the compiler to
display warning, severe and
fatal error messages.
inform instructs the compiler to
display all error messages
(inform, warn, severe and
fatal).
inline=[option[,option,...]]
Pass options to the function inliner.
Without options -Minline instructs the
compiler to perform inlining within
loops with an INDEPENDENT directive and
to use a temporary directory for the
extract phase. The options are:
[lib:]filename.ext
An option containing a period
is assumed to be an inline
library created by a previous
- Mextract option. If lib: is
specified, no period is neces-
sary. Functions from the
specified library are inlined.
If no library is specified,
functions are extracted from a
temporary library created dur-
ing an extract prepass.
[name:]function
A non-numeric option not con-
taining a period is assumed to
be a function name. If name:
is specified, what follows is
always the name of a function.
levels:number
number of levels of inlining
are performed. The default is
1.
keepftn Keep the intermediate Fortran 77 file(s)
in files named file.f for each HPF input
file and continue the compilation.
[no]list instructs the compiler to create a list-
ing file. The listing file is
filename.lst, where the name of the
source file is filename.hpf.
noautopar This option disables automatic parallel-
ization that the compiler normally per-
forms in loops marked with the HPF
INDEPENDENT directive.
nohpfc Skip the HPF compilation step but com-
pile using the Fortran 77 compiler if a
file with a .f or .F extension is sup-
plied.
parmacs Generate code using runtime libraries
and startup routines for the PARMACS
environment.
prof= func | line
Set profile options. See the PGI pro-
filer manual, or the system profiler
manual, for further information. The
options are:
func Perform PGI-style function
level profiling.
line Perform PGI-style line level
profiling.
preprocess
Run the preprocessor on the input source
file.
pvm Generate code using runtime libraries
and startup routines for the PVM
environment.
r8 Determines whether the compiler promotes
REAL variables and constants to DOUBLE
PRECISION and COMPLEX to DOUBLE COMPLEX.
replicate [=dims:n]
detects common cases where the HPF com-
piler generates calls to the HPF runtime
routine pghpf_get_scalar(), (a costly
communication call). Calls to
pghpf_get_scalar() are generated for a
distributed array reference within
statements in a loop in the following
cases:
1) The statement is an assignment to an
undistributed array or to a scalar.
2) The array reference is used as the
index to another array.
3) The array reference occurs within a
conditional expression.
The array replicator eliminates calls to
pghpf_get_scalar() by replicating dis-
tributed arrays that satisfy any of the
above three conditions. Array replica-
tion will reduce available parallelism
and will incur the cost of copying dis-
tributed arrays to their replicated
counterparts.
dims:n the replicator will not
attempt to create replicated
arrays for arrays with n or
more dimensions.
rpm Generate code using runtime libraries
and startup routines for the RPM (PGI
Real Parallel Machine) environment.
rpm1 Generate code using runtime libraries
and startup routines for the RPM Single
(PGI Real Parallel Machine - Single)
environment. This environment is used
for debugging. A program run calls all
HPF Runtime library routines, but only
using a single processor.
[no]sequence
All variables are created as SEQUENCE
variables, where sequential storage is
assumed. With nosequence, all variables
are created as nonsequential variables
unless an explicit SEQUENCE directive is
supplied or the variable is an assumed
size array.
stats Causes the driver to load special run-
time libraries for collecting communica-
tions and message passing statistics.
For use with the runtime option -pghpf
-stat msg.
standard Causes the compiler to flag source code
that does not conform to the ANSI For-
tran 90 standard (note, this option
applies to Fortran 90 and not HPF since
there currently is not an HPF ANSI stan-
dard).
[no]upcase
The compiler allows uppercase letters in
identifiers. With -Mupcase, the identif-
iers "X" and "x" are different, and key-
words must be in lower case. This selec-
tion affects the linking process: if you
compile and link the same source code
using -Mupcase on one occasion and -
Mnoupcase on another, you may get two
different executables (depending on
whether the source contains uppercase
letters). The standard libraries are
compiled using the default -Mnoupcase.
-Wpass,option[,option...]
Pass the options to the specified pass. Each
comma-delimited option is passed as a separate
argument. The passes are: h for the hpf com-
piler, 0 for the node compiler, a for the assem-
bler, and l for the linker.
FORTRAN DRIVER OPTIONS
All options appropriate to the Fortran 77 node compiler used
with pghpf. Depending on the platform, pghpf driver sup-
ports a number of Fortran 77 compilers. Refer to your
system's documentation for Fortran 77 options, or call the
Portland Group if you have any questions or problems.
FILES
a.out executable output file
file.a library of object files
file.f HPF source file
file.F HPF source file
file.f90 HPF source file
file.for HPF source file
file.hpf HPF source file
file.o object file
file.s assembler source file.
Executables reside in $PGI/arch/bin; libraries and objects
reside in $PGI/arch/lib. PGI is an environment variable
that can be set to the root of the compiler installation
directory. The arch is the machine architecture which is one
of (sparc, sgi, rs6000,pgon,...). If PGI is not set, the
default is /usr/pgi.
SEE ALSO
Fortran 77 node compiler documentation.
pghpf Installation and Release Notes.
DIAGNOSTICS
The compiler produces information and error messages as it
translates the input program. The linker and assembler may
issue their own error messages.