April 1999
This document provides information about how to run and use KAP Fortran on OpenVMS Alpha systems.
Revision /Update Information | This is a revised document. |
Operating System and Version: | OpenVMS Alpha, Version 7.2 |
Software Versions: | Version 3.2
Compaq Fortran 90 |
Compaq Computer Corporation
Maynard, Massachusetts
_____________________________________________________________________
First Printing, December 1992
Revised, April 1999
Possession, use, or copying of the software described in this publication is authorized only pursuant to a valid written license from Compaq or an authorized sublicensor.
Compaq Computer Corporation makes no representations that the use of its products in the manner described in this publication will not infringe on existing or future patent rights, nor do the descriptions contained in this publication imply the granting of licenses to make, use, or sell equipment or software in accordance with the description.
© Digital Equipment Corporation 1992-1999. All rights reserved.
© Kuck & Associates, Inc. 1992-1999. All rights reserved.
Compaq, the Compaq logo, AlphaGeneration, OpenVMS, and DIGITAL are registered in U.S. Patent and Trademark Office.
DECthreads is a trademark of Compaq Computer Corporation.
KAP is a trademark of Kuck & Associates, Inc.
Other product names mentioned herein may be the trademarks of their respective companies.
This document is available on CD-ROM.
This document was produced using SDMLWEB.
1 Overview
2.2 Installing KAP
2.3 Compiling a Program Using the kfort Driver
2.4 kfort Qualifiers
2.4.2 /verbose, /verbose, (/noverbose)
2.7 KAP Command Qualifiers Determined by Compiler Qualifiers
2.8 Compiling a Program Using kapf
2.9 Compiling a Program Containing C Preprocessor Directives Using kapf
2.10 Using KAP Syntax
2.10.2 Concantenating Files with kfort
2.10.3 Using the files= Option
2.10.4 Listing File Names
2.10.5 Using Options with a List of File Names
2.12 Introducing the Five Minute KAP Guide
2.12.2 Optimizing Large Programs with KAP
2.14 General Optimization Tips
2.15 Using Additional Performance Improvement Techniques
3.3 Directed Parallelization Using the kfort Driver and PCF Directives
3.3.2 PARALLEL REGION Directive
3.3.3 PARALLEL DO Directive
3.3.4 DO Loop Example with PCF Directives
3.3.5 Program Example with PCF Directives
3.3.6 CRITICAL SECTION Directive
3.3.7 ONE PROCESSOR SECTION Directive
3.3.8 Comparison of KAP PCF and Cray Autotasking Directives
3.5 Compiling a Program for Parallel Execution Using kapf
3.6 Parallel Run-Time Support Library Routines
4.2 MODULE Variables
4.5 Generic Fortran Interfaces
4.8 Derived Types
4.10 Intrinsics
4.11 Input/Output
5.1.2 /namepartitioning, /namepart, /nnamepart, (/nonamepartitioning)
5.1.3 /optimize, /o, (/optimize=5)
5.1.4 /roundoff, /r, (/roundoff=3)
5.1.5 /scalaropt, /so, (/scalaropt=3)
5.1.6 /skip, /sk, /nsk, (/noskip)
5.1.7 /tune, /tune, (/tune=<architecture>)
5.2.2 /concurrentize, /conc, /noconc, (/noconcurrentize)
5.2.3 /minconcurrent, /mc, (/minconcurrent=1000)
5.2.4 /optimize=6, /o=6, (/optimize=5)
5.2.5 /parallelio, /nopio, /pio, (/noparallelio)
5.2.6 /scheduling=<list>, /schd=<list>, (/scheduling=e)
5.3.2 /align_struct, /align_struct, (/align_struct=4)
5.3.3 /assume, /a, (/assume=cel), /noassume, /na
5.3.4 /datasave, /ds, (/datasave), /nodatasave, /nds
5.3.5 /dlines, /dl, (/nodlines), /ndl
5.3.6 /escape, /noescape, (/escape)
5.3.7 /freeformat, /ff, (/nofreeformat)
5.3.8 /integer, /int, (/integer=4)
5.3.9 /intlog, (/intlog)
5.3.10 /kind, (/kind), (/kind=4)
5.3.11 /logical, /log, (/logical=4)
5.3.12 /natural, /nat, /nonatural
5.3.13 /onetrip, 1, (/noonetrip), /n1
5.3.14 /real, /rl, (/real=4)
5.3.15 /save, /sv, (/save=manual_adjust)
5.3.16 /scan, (/scan=72)
5.3.17 /syntax, /sy, (off)
5.3.18 /type, /ty, (/notype), /nty
5.4.2 /inline_and_copy, /inlc, (off)
5.4.3 /inline_create, /incr, (off), /ipa_create, /ipacr, (off)
5.4.4 /inline_depth, /ind, (/inline_depth=2), /ipa_depth, /ipad, (/ipa_depth=2)
5.4.5 /inline_from_files, /inff, (current source file)
5.4.6 /inline_from_libraries, /infl, (off)
5.4.7 /ipa_from_files, /ipaff, (current source file)
5.4.8 /ipa_from_libraries, /ipafl, (off)
5.4.9 /inline_looplevel, /inll, (/inline_looplevel=2), /ipa_looplevel, /ipall, (/ipa_looplevel=2)
5.4.10 /inline_manual, /inm, (off), /ipa_manual, /ipam, (off)
5.4.11 /inline_optimize, (/inline_optimize=0), /ipa_optimize, (/ipa_optimize=0)
5.5.2 /arclimit, /arclm, (/arclimit=5000)
5.5.3 /cacheline, /chl, (/cacheline=32,32)
5.5.4 /cache_prefetch_line_count, /cplc, (/cplc=0)
5.5.5 /cachesize, /chs, (/cachesize=8,0)
5.5.6 /dpregisters, /dpr, (/dpregisters=32)
5.5.7 /each_invariant_if_growth, /eiifg, (/eiifg=20)
5.5.8 /fpregisters, /fpr, (/fpregisters=32)
5.5.9 /fuse, /nfuse, (/nofuse)
5.5.10 /fuselevel, /fuselevel=1, (/fuselevel=0)
5.5.11 /generateh
5.5.12 /hdir, /hd, (/hdir=current_directory)
5.5.13 /heaplimit, /heap, (/heaplimit=100)
5.5.14 /hoist_loop_invariants, /hli, (/hoist_loop_invariants=1)
5.5.15 /interleave, /intl, (/interleave)
5.5.16 /library_calls, /lc, (off)
5.5.17 /limit, /lm, (/limit=10)
5.5.18 /machine, /ma, /noma, (machine=s)
5.5.19 /max_invariant_if_growth, /miifg, (/miifg=500)
5.5.20 /routine, /rt, /nrt, (/noroutine)
5.5.21 /setassociativity, /sasc, (/setassociativity=1)
5.5.22 /srlcd, /nsrlcd, (/nosrlcd)
5.5.23 /unroll, /ur, (unroll=4), /unroll2, /ur2, (/unroll2=160), /unroll3, /ur3, (/unroll3=20)
5.5.24 /useh
5.6.2 /ignoreoptions, /ig, (/noignoreoptions), /nig
5.7.2 /fortran, /f, (<file>.cmp.f), (<file>.cmp.f), /nofortran, /nf
5.7.3 /list, /l, (<file>.out), /nolist, /nl
5.8.2 /lines, /ln, (/lines=55)
5.8.3 /listingwidth, /lw, (/listingwidth=132)
5.8.4 /listoptions, /lo, (/listoptions=o)
5.8.5 /suppress, /su, (off)
6.2 KAP Directives
6.3 General Optimization Directives
6.3.2 C*$* beginblock <directive block> C*$* endblock
6.3.3 C*$* each_invariant_if_growth (0-100)
6.3.4 C*$* limit (> 0)
6.3.5 C*$* max_invariant_if_growth (0-1000)
6.3.6 C*$* optimize (0-5)
6.3.7 C*$* roundoff (0-3)
6.3.8 C*$* scalar optimize (0-3 )
6.3.9 C*$* unroll( <#it>[<weight>])
6.4.2 C*$* minconcurrent (0-999999)
6.4.3 C*$* optimize=6
6.5.2 C*$* [no]ipa [here|routine|global] [(name [,name...])]
6.7.2 C*$* storage order (var-list)
7.2 Descriptions
7.2.2 C*$* assert [no]bounds violations
7.2.3 C*$* assert [no]equivalence hazard
7.2.4 C*$* assert [no]last value needed
7.2.5 C*$* assert permutation
7.2.6 C*$* assert no recurrence
7.2.7 C*$* assert relation ( <name> .XX. <variable/constant>)
7.2.8 C*$* assert no sync
7.2.9 C*$* assert [no] temporaries for constant arguments
7.3.2 C*$* assert do (concurrent)
7.3.3 C*$* assert do (concurrent call)
7.3.4 C*$* assert do (serial)
7.3.5 C*$* assert do prefer (concurrent)
7.3.6 C*$* assert do prefer (serial)
8.1.2 Library Creation
8.1.3 Naming Specific Routines
8.1.4 DO Loop Level
8.1.5 Recursive Inlining
8.1.6 Manual Control
8.4.2 Inlining Example with a Library
8.4.3 IPA Example
8.4.4 Recursive Inlining Examples
8.4.5 Manual Inlining Example
8.4.6 Notes on Inlining and IPA
9.1.2 Memory Management Tactics
9.2.2 Induction Variable Recognition
9.2.3 Global Forward Substitution
9.2.4 Loop Peeling
9.2.5 Lifetime Analysis
9.2.6 Invariant-IF Restructuring
9.2.7 Reciprocal Substitution
9.3.2 IF to DO Loop
9.3.3 Semantic IF Merging
9.3.4 Zero-Trip IF Removal
9.5 Loop Rerolling
10.1.2 Calling Tree (C)
10.1.3 KAP Switches (K)
10.1.4 Loop Table (L)
10.1.5 Name (N)
10.1.6 Compilation Performance Statistics (P)
10.1.7 Summary Table (S)
10.1.8 Transformed Program Listing (T)
10.2.2 DO Loop Markings
10.2.3 INCLUDE File Markings
10.2.4 Footnotes
10.2.5 Syntax Error/Warning Messages
10.2.6 Questions Generated by KAP
10.2.7 Action Summary
10.4 KAP Listing Messages
B.2 Varieties of Data Dependence
B.5 Data Dependence Direction Vectors
C.2 Messages
C.2.2 Error (E)
C.2.3 Extension (EX)
C.2.4 Inlining/IPA (INL)
C.2.5 Informational (INF)
C.2.6 Inserted (I)
C.2.7 Loop Reordering (LR)
C.2.8 Warning (MIS)
C.2.9 Option Error (OW)
C.2.10 Not Optimized (NO)
C.2.11 Output Translation (OT)
C.2.12 Output Trans Fails (OTF)
C.2.13 Program Too Large (NO)
C.2.14 Question (Q)
C.2.15 Scalar Optimization (SO)
C.2.16 Standardized (STD)
C.2.17 Translator Error (TE)
C.2.18 Vector Enhanced (VE)
C.2.19 Warning (W)
Tables
2-2 User Actions for Specific Goals
3-1 Comparison of KAP PCF and Cray Autotasking Directives
6-1 KAP Directives
7-1 KAP Assertions
A-1 Compaq Fortran Extensions Supported by KAP
Copyright © Digital Equipment Corporation. 1999. All Rights Reserved.