Appendix C. Power Fortran Driver Options

This appendix summarizes the driver options that relate specifically to automatic parallelization in Power Fortran. Many additional options relating to optimization are documented in the MIPSpro Fortran 90 Programmer's Guide. When viewing this Guide online, you can use the cross-references in the following table as hypertext links to the descriptive paragraphs.

Table C-1. Power Fortran Driver Options

Option (long)

Option (short)

Default
(with -pfa)

Summary

Discussion

–[no]concurrentize

-[no]conc

-conc

Click here

Click here

-[no]directives[=list]

-[n]dr[=list]

–dr=ackpv

Click here

Click here

-limit=n

-lm

-lm=20000

Click here

Click here

-lines=n

-ln

-lines=55

Click here

Click here

-listoptions=list

-lo=list

-lo=li

Click here

Click here

-minconcurrent

-mc

-mc=500

Click here

Click here

-optimize=n

-o=n

depends on On

Click here

Click here

-[no]parallelio

-[no]pio

-nopio

Click here

Click here

-roundoff=n

-r=n

depends on On

Click here

Click here

-suppress=list

-su=list

(none)

Click here

Click here


[no]concurrentize

The –concurrentize option allows Power Fortran to convert eligible loops to run in parallel throughout the source file, subject to use of directives within the source file (see “C*$* NOCONCURRENTIZE”).

The -noconcurrentize option disables conversion of eligible loops throughout the source file, subject to the use of the directives within the source file (see “C*$* CONCURRENTIZE”).

[no]directives

The option -directives=list enables interpretation of directives in the source file. The letters in list specify different classes of directives to be recognized:

A

Unique Power Fortran directives

C

Cray (CDIR$) directives

K

Power Fortran C*$* form directives

S

Sequent C$ directives

V

VAST (CVD$) directives

The default is to enable all but Cray directives, since there are cases where the Cray CDIR$ IVDEP directive is unsafe in SGI Fortran (see “CDIR$ IVDEP”).

The options -nodirectives disables processing of all directives in the source file.

limit

The –limit=n option reduces Power Fortran processing time by limiting the amount of time Power Fortran can spend trying to determine whether a loop is safe to run in parallel. Power Fortran estimates how much time is required to analyze each loop nest construct. If an outer loop looks like it would take too much time to analyze, Power Fortran ignores the outer loop and recursively visits the inner loops.

Larger limits often allow Power Fortran to generate parallel code for deeply nested loop structures that it might not otherwise be able to run safely in parallel. However, with larger limits Power Fortran can also take more time to analyze a program.The value of n does not correspond to the loop nest level. It is an estimate of the number of loop orderings that Power Fortran can generate from a loop nest.

The same processing limit can be specified within the source file using a directive; see “C*$* LIMIT”.

lines

The –lines option sets the page size for the listing produced by Power Fortran. Specifying –lines=0 paginates at subroutine boundaries only.

listoptions

The –listoptions=list option specifies the information to include in the listing file (.L). The letters in list include any combination of the letters in Table C-2. The default is –listoptions=ol.

Table C-2. Listing File Include Options

Letter

Controls This Information

c

Calling tree at the end of the program listing.

i

Transformed program file annotated with line numbers in the source program. Error messages and debugging information can refer to the original source rather than the transformed source. This argument is specified by default.

k

List of the Power Fortran options used at the end of each program unit.

l

Loop-by-loop optimization table.

n

Program unit names, as processed, to the standard error file. This option is added automatically as part of an f90 –v compilation.

o

Annotated listing of the original program.

p

Processing performance statistics.

s

Summary of optimizations performed.

t

Annotated listing of the transformed program.


minconcurrent

The –minconcurrent=n option establishes the minimum amount of work needed inside a loop to make executing a loop in parallel worthwhile. If the loop does not contain at least this much work, the loop will not be run in parallel.

When the loop bounds are constants, Power Fortran can decide whether or not to transform the loop at compile time. If the loop bounds are not constants, Power Fortran transforms the loop to parallel form but includes an IF clause in the parallelizing directive to test at run time whether sufficient work exists.

The value n is a count of the number of operations (for example, add, multiply, load, store) in the loop, multiplied by the number of times the loop will be executed.

optimize

The –optimize=n option sets the optimization level. The higher you set the optimization level, the more code is optimized and the longer compilation takes Valid values for n are:

0

Disables optimization; no loops are converted.

1

Converts loops to run in parallel without using advanced data dependence tests. Enables loop interchanging.

2

Determines when scalars need last-value assignment using lifetime analysis. Also uses more powerful data dependence tests to find loops that can run safely in parallel. This level allows reductions in loops that execute concurrently but only if the –roundoff option is set to 2 (see “Reductions” for discussion of –roundoff.)

3

Recognizes triangular loops and attempts loop interchanging to improve memory referencing. Uses special case data dependence tests. Also, recognizes special index sets called wraparound variables.

4

Generates two versions of a loop, if necessary, to break a data dependence arc. This level also implements more-exact data dependence tests and allows special index sets (called wraparound variables) to convert more code to run in parallel.

5

Fuses two adjacent loops if it is legal to do so (that is, there are no data dependencies) and if the loops have the same control values. In certain limited cases, this level recognizes arrays as local variables. This level is the default.


parallelio

The –parallelio option enables the parallelization of loops that contain I/O statements. Use this option only on systems with parallel I/O capabilities or where I/O statements in loops are not executed.

The -noparallelio option (the default) disables transformation of any loop with an I/O statement in it.

suppress

The –suppress option lets you disable individual classes of Power Fortran messages that are normally included in the listing (.L) file These messages range from syntax warnings and error messages to messages about the optimizations performed. list is any combination of the option letters summarized in Table C-3.

Table C-3. Listing File Message Disabling Options

Value

Message Class Disabled

d

Data dependence

e

Syntax error

i

Information

n

Unable to run loop in parallel

q

Questions

s

Standard messages

w

Warning of syntax error (Power Fortran adds the –suppress=w option automatically if you use the –w option to f90)