VAX FORTRAN HPO Installation Guide/Release Notes Order Number: AA-PC38A-TE May 1990 This manual contains instructions for installing VAX FORTRAN HPO on the VMS operating system. It also includes the release notes for the initial release of the product. This manual applies to VAX FORTRAN HPO Version 1.0 and all future maintenance updates to that version. Revision/Update Information: This is a new manual. Operating System and Version: VMS Version 5.4 or higher. Future maintenance releases may require higher versions. Software Version: VAX FORTRAN HPO Version 1.0 digital equipment corporation maynard, massachusetts ___________________________________________________ First Printing, May 1990 The information in this document is subject to change without notice and should not be construed as a commitment by Digital Equipment Corporation. Digital Equipment Corporation assumes no responsibility for any errors that may appear in this document. The software described in this document is furnished under a license and may be used or copied only in accordance with the terms of such license. No responsibility is assumed for the use or reliability of software on equipment that is not supplied by Digital Equipment Corporation or its affiliated companies. Restricted Rights: Use, duplication, or disclosure by the U.S. Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013. © Digital Equipment Corporation 1990. All Rights Reserved. Printed in U.S.A. The postpaid Reader's Comments forms at the end of this docu- ment request your critical evaluation to assist in preparing future documentation. ZK-5517 Contents ________________________________________________________________ ________________________________________________________________ Chapter 1 Preparing to Install VAX FORTRAN HPO 1.1 Required Operating System Components............ 1-2 1.2 Prerequisite and Optional Software.............. 1-2 1.3 License Registration ............................ 1-3 1.4 Installation Procedure Requirements............. 1-4 1.4.1 Installation Account Privileges and Disk Space ................................ 1-5 1.4.2 System Parameters.......................... 1-5 1.4.2.1Calculating the Values for GBLPAGES and GBLSECTIONS.......... 1-6 1.4.2.2Changing System Parameter Values with AUTOGEN........................ 1-7 1.4.3 VMSINSTAL Requirements.................... 1-8 1.4.4 Backing Up Your System Disk.............. 1-9 1.4.5 VAX FORTRAN HPO Requirements............. 1-10 iii ________________________________________________________________ Chapter 2 Installing VAX FORTRAN HPO 2.1 The Installation Procedure ....................... 2-1 2.2 Error Recovery ................................ 2-11 ________________________________________________________________ Chapter 3 After Installing VAX FORTRAN HPO 3.1 Running the Installation Verification Procedure Separately ............................. 3-2 3.2 VAXcluster Considerations ........................ 3-2 3.3 User Account Requirements ........................ 3-3 3.3.1 User Account Privileges ................... 3-3 3.3.2 User Account Quotas ........................ 3-4 3.4 Enhancing VAX FORTRAN HPO Performance ........... 3-4 3.4.1 Tuning Your System ......................... 3-4 3.4.2 Installing VAX FORTRAN HPO as a Shared Image ...................................... 3-4 3.5 Determining and Reporting Problems .............. 3-5 3.6 VAX FORTRAN Version 5 Maintenance Updates ...... 3-6 ________________________________________________________________ Chapter 4 Release Notes 4.1 Overview of VAX FORTRAN HPO ...................... 4-1 iv 4.1.1 New Qualifiers and Qualifier Parameters.................................. 4-2 4.1.1.1 /ASSUME Qualifier ................. 4-4 4.1.1.2 /BLAS Qualifier.................... 4-5 4.1.1.3 /CHECK Qualifier (ASSERTIONS Parameter) .......................... 4-7 4.1.1.4 /DESIGN Qualifier.................. 4-7 4.1.1.5 /DIRECTIVES Qualifier............. 4-7 4.1.1.6 /HPO Qualifier ..................... 4-8 4.1.1.7 /PARALLEL Qualifier (AUTOMATIC and MANUAL Parameters) ........... 4-9 4.1.1.8 /SHOW Qualifier (DATA_DEPENDENCES and LOOPS Parameters) ............ 4-10 4.1.1.9 /SYNCHRONOUS_EXCEPTIONS Qualifier.......................... 4-11 4.1.1.1 /TERMINAL Qualifier ............... 4-12 4.1.1.1 /VECTOR Qualifier.................. 4-12 4.1.1.1 /WARNINGS Qualifier (ALIGNMENT and TRUNCATED_SOURCE Parameters)........................ 4-13 4.1.2 Assertion Declarations .................... 4-13 4.2 VAXset Program Design Facility................... 4-15 4.2.1 /DESIGN Compile Command Qualifier ....... 4-16 4.2.1.1 Allowed Contexts for Placeholders ...................... 4-18 4.3 DECwindows Compile Verb Support in FileView .... 4-20 4.4 VAX FORTRAN Performance Guide.................... 4-20 4.5 Compiler Deficiencies in VAX FORTRAN Version 5 and VAX FORTRAN HPO ............................ 4-21 4.5.1 Restrictions on Standards Checking ...... 4-21 4.5.2 Using /DML and /PARALLEL Qualifiers ..... 4-22 4.5.3 Maintaining Password Security ............ 4-22 4.5.4 Status of Bug Fixes ....................... 4-22 v 4.6 Additional Information Needed for FORTRAN Parallel Processing ............................ 4-23 4.6.1 Tuning Issues for Parallel Processing ... 4-23 4.6.1.1 System Parameters ................. 4-23 4.6.1.2 User Parameters ................... 4-24 4.6.1.3 Working Set Parameters ........... 4-24 4.6.2 Restrictions on Parallel-Processing Applications .............................. 4-24 4.6.3 Linking Against FORTRAN Parallel-Processing Support .............. 4-25 4.6.3.1 Linking with the /NOSYSSHR Qualifier ......................... 4-25 4.6.4 Using PPL$ Run-Time Library Routines .... 4-25 4.7 Compatibility Issues Involving VAX FORTRAN HPO........................................... 4-26 4.7.1 Compilation Compatibility ................. 4-26 4.7.2 Source Compatibility ...................... 4-27 4.7.3 Object Compatibility ...................... 4-27 4.7.4 Image Compatibility ....................... 4-27 4.8 Source Program Diagnostic Messages .............. 4-28 4.8.1 Messages Supporting Dependence Analysis of DO Loops ............................... 4-28 4.8.2 Messages Supporting Vectorization of Specific Statements ....................... 4-30 4.8.3 Messages Supporting Vectorization ....... 4-32 4.8.4 Messages Supporting the VAXset Program Design Facility............................ 4-33 ________________________________________________________________ Appendix A Sample Installation vi ________________________________________________________________ Tables 1-1 Prerequisite and Optional Software .............. 1-2 1-2 Disk Space Requirements........................... 1-5 1-3 Process Quotas for the Installing User Account ........................................ 1-9 vii Chapter 1 Preparing to Install VAX FORTRAN HPO ________________________________________________________________ This chapter discusses the preparations and requirements necessary for installing VAX FORTRAN HPO. This manual applies to Version 1.0 of VAX FORTRAN HPO and all subsequent maintenance releases up to the next major release of the product. (A major version number is represented by the digits to the left of the decimal point, and the maintenance update version number is indicated by the digits to the right of the decimal point.) Keep this manual with your installation kit. You will need it to install maintenance updates or to reinstall VAX FORTRAN HPO for any other reason. Your bill of materials (BOM) and indented bills report (BIL) specify the number and contents of your media. Be sure to verify the contents of your kit with this information. If your kit is damaged or if you find that parts of it are missing, contact your Digital representative. VAX FORTRAN HPO provides online release notes. Digital strongly recommends that you read the release notes before proceeding with the installation. For information on access- ing the online release notes, see Section 2.1 (step 5). The online release notes contain information that is likely to change from release to release. Preparing to Install VAX FORTRAN HPO 1-1 Note that hardcopy release notes are contained in Chapter 4. The hardcopy release notes cover only information that will be included in the VAX FORTRAN Language Reference Manual and VAX FORTRAN User Manual when they are revised. ____________________________________________________________ 1.1 Required Operating System Components VAX FORTRAN HPO Version 1.n requires VMS Version 5.4 or higher. The VMS operating system comes with a variety of support options, or classes. Classes include such features as net- working and RMS journaling. To use VAX FORTRAN HPO, your system should be running a version of VMS that includes the following classes: o Programming support o Utilities For a complete list of the required classes, see the Software Support Addendum (SSA), which comes with the VAX FORTRAN HPO Software Product Description (SPD). ____________________________________________________________ 1.2 Prerequisite and Optional Software Table 1-1 provides information on the software you must have installed on your system before installing VAX FORTRAN HPO. The table also includes information about optional software that you can use together with VAX FORTRAN HPO. The System Software Addendum (SSA) contains a complete list of prerequisite and optional software and their required version numbers. Table 1-1: Prerequisite and Optional Software _____________________________________________________________ Prerequisite_Products______Purpose___________________________ VAX FORTRAN Version 5.4 Compiler for /NOHPO qualifier _____________________________________________________________ (continued on next page) 1-2 Preparing to Install VAX FORTRAN HPO Table 1-1 (Cont.): Prerequisite and Optional Software _____________________________________________________________ Prerequisite_Products______Purpose___________________________ VAX Language-Sensitive Display of data dependence diag- Editor nostics Version 3.0 _____________________________________________________________ Optional_Products__________Purpose___________________________ VAX Performance Coverage Analysis of program performance Analyzer Version 3.0 VAX Common Data DICTIONARY statement support Dictionary Version Version 3.4 VAX Source Code Analyzer Program design and analysis Version 2.0 Digital Extended Math High-performance mathematical Library routines _____Version_1.0_____________________________________________ ____________________________________________________________ 1.3 License Registration You must register the VAX FORTRAN HPO license through the VMS License Management Facility (LMF) in accordance with the license agreement signed by your site. The license reg- istration information you need is contained in the Product Authorization Key (PAK) shipped with each software product. The PAK is a paper certificate containing information about the license to run a particular software product. You must register three software licenses through LMF when you install VAX FORTRAN HPO: o A VAX FORTRAN license o A VAX FORTRAN HPO license o A VAX Language-Sensitive Editor (LSE) license Preparing to Install VAX FORTRAN HPO 1-3 If you install this product and register only the VAX FORTRAN license, you will be able to use the compiler, but you will not be able to use the new features provided by VAX FORTRAN HPO and VAX LSE for vector processing or automatic paral- lelism support. During the installation, the system asks whether you have registered the VAX FORTRAN HPO license and loaded the appro- priate PAK. You must register and load your license for VAX FORTRAN HPO before you start the installation. To register a license under VMS, first log in to the system manager's account, SYSTEM. You then have a choice of two ways to perform the registration: o Invoke the SYS$UPDATE:VMSLICENSE.COM procedure. When it prompts you for information, respond with data from your PAK. o At the DCL prompt, enter the LICENSE REGISTER command with the appropriate qualifiers that correspond to PAK information. If you plan to use VAX FORTRAN HPO on more than one node in a VAXcluster, you will need to load all three licenses on the other nodes after you complete this installation. See Section 3.2. For complete information on using LMF, see the manual on the License Management Utility in the VMS documentation set. ____________________________________________________________ 1.4 Installation Procedure Requirements This section and those that follow discuss various require- ments for installing VAX FORTRAN HPO. The installation takes approximately 5 to 40 minutes, depend- ing on your type of media, your system configuration, and the kit components chosen. Installing VAX FORTRAN HPO and running the Installation Verification Procedure (IVP) on a standalone VAX 6000-300 system takes 20 minutes. 1-4 Preparing to Install VAX FORTRAN HPO ____________________________________________________________ 1.4.1 Installation Account Privileges and Disk Space To install VAX FORTRAN HPO, you must be logged in to an ac- count that has the SETPRV privilege or at least the following privileges: o CMKRNL o WORLD o SYSPRV Note that VMSINSTAL turns off BYPASS privilege at the start of the installation. VAX FORTRAN HPO's requirements for free disk storage space are different during installation and after installation. Table 1-2 summarizes the storage requirements. Table 1-2: Disk Space Requirements _____________________________________________________________ Blocks During Blocks After Kit_____________________Installation____Installation_________ VAX FORTRAN HPO 8,500 6,500 Version_1.0__________________________________________________ Disk space usage can be reduced by omitting certain compo- nents of VAX FORTRAN HPO during installation. See the de- scription of step 7 in Chapter 2 for more information about component selection. To determine the number of free disk blocks on the current system disk, enter the following command at the DCL prompt: $ SHOW DEVICE SYS$SYSDEVICE ____________________________________________________________ 1.4.2 System Parameters Installing VAX FORTRAN HPO requires certain system parameter settings. Preparing to Install VAX FORTRAN HPO 1-5 The minimum number of free global pages and global sec- tions needed for the installation depends on whether SYS$SYSTEM:FORTRAN-HPO.EXE was previously installed as a shared known image: o If not previously installed as shared-1 global section and a sufficient number of contiguous free global pages to contain the file SYS$LIBRARY:DCLTABLES.EXE o If previously installed as shared-2 global sections and approximately 1500 contiguous free global pages plus a sufficient number of contiguous free global pages to contain the file SYS$LIBRARY:DCLTABLES.EXE These values represent the number of free global pages and global sections required for the installation, not the total number you need to run your system and other software. NOTE You must ensure that your system has the necessary global page and global section SYSGEN quotas for the installation. Failure to do so could cause the DCL tables to be corrupted in some situations. The following sections show you how to: o Calculate values for the GBLPAGES and GBLSECTIONS system parameters o Change parameter values with the VMS AUTOGEN command procedure ____________________________________________________________ 1.4.2.1 Calculating the Values for GBLPAGES and GBLSECTIONS To install and run VAX FORTRAN HPO, you must have sufficient free global pages and global sections. You must first find out how many free global pages and sections you have on your system. Then use AUTOGEN if you need to increase the GBLPAGES and GBLSECTIONS system parameters. Enter the following DCL command to determine the number of global pages required by SYS$LIBRARY:DCLTABLES.EXE: $ DIR/SIZE SYS$LIBRARY:DCLTABLES.EXE 1-6 Preparing to Install VAX FORTRAN HPO This command returns the size (in blocks) of SYS$LIBRARY:DCLTABLES.EXE. As an approximation, use this figure as the number of global pages needed for the file. You can use the WRITE command with the F$GETSYI lexical function to find the number of free contiguous global pages and free global sections. The following example shows how to get this information at your terminal (the default for SYS$OUTPUT): $ WRITE SYS$OUTPUT F$GETSYI("CONTIG_GBLPAGES") 15848 $ WRITE SYS$OUTPUT F$GETSYI("FREE_GBLSECTS") 24 If the value of free global pages or global sections is less than the required value (see Section 1.4.2), you must increase the system parameter setting. Section 1.4.2.2 describes the procedures for increasing these values using AUTOGEN. ____________________________________________________________ 1.4.2.2 Changing System Parameter Values with AUTOGEN If you do not have enough free global pages or free global sections to install VAX FORTRAN HPO, you can either delete an existing known image using the VMS Install Utility or use the AUTOGEN command procedure to increase the GBLPAGES of GBLSECTIONS system parameters. AUTOGEN automatically adjusts values for parameters that are associated with the values you reset manually. To change system parameters with AUTOGEN, edit the following file: SYS$SYSTEM:MODPARAMS.DAT Use an editor to access the file. To change a parameter value listed in this file, delete the current value associated with that parameter and enter the new value. To add a new parameter, add a line to the file that includes both the name of the parameter and its value. For example: WSMAX = 8096 Preparing to Install VAX FORTRAN HPO 1-7 To modify incremental parameters such as GBLPAGES and GBLSECTIONS, use ADD_. The following example increases the global page setting by 2000: ADD_GBLPAGES = 2000 After you make all your changes, exit from the editor and execute the AUTOGEN procedure to recalculate your system parameters. Enter the following command at the DCL prompt: $ @SYS$UPDATE:AUTOGEN GETDATA REBOOT When you specify REBOOT, AUTOGEN performs an automatic system shutdown and then reboots the system. Any users logged on to the system are immediately disconnected during the shutdown. The automatic reboot puts the new parameter values into effect. The AUTOGEN Utility automatically adjusts some of the SYSGEN parameters based on the consumption of resources since the last reboot. If you do not want to take advantage of this automatic adjustment, include the NOFEEDBACK qualifier on the AUTOGEN command line. For more information about using AUTOGEN, see the VMS System Management Subkit. ____________________________________________________________ 1.4.3 VMSINSTAL Requirements When you invoke VMSINSTAL, it checks the following: o Whether you have set your default device and directory to SYS$UPDATE o Whether you are logged in to a privileged account o Whether you have adequate quotas for installation o Whether any users are logged in to the system Note that the VMSINSTAL requires that the installation ac- count must have the minimum process quotas shown in the following table: 1-8 Preparing to Install VAX FORTRAN HPO Table 1-3: Process Quotas for the Installing User Account _____________________________________________________________ Account_Quota_______Value____________________________________ ASTLM (AST limit) 24 BIOLM (Buffered 18 I/O quota) BYTLM (Buffered 32,768 I/O byte count quota) DIOLM (Direct I/O 18 quota) ENQLM (Enqueue 200 quota) FILLM (Open file 100 limit)_______________________________________________________ User account quotas are stored in the file SYSUAF.DAT. Use the VMS Authorize Utility (AUTHORIZE) to verify and change user account quotas. For information on modifying account quotas, see the description of the Authorize Utility in the VMS System Management Subkit. If VMSINSTAL detects any problems during the installation, it notifies you and asks if you want to continue the instal- lation. In some instances, you can enter YES to continue. To stop the installation process and correct the situation, en- ter NO or press RETURN. Then correct the problem and restart the installation. ____________________________________________________________ 1.4.4 Backing Up Your System Disk At the beginning of the installation, VMSINSTAL asks if you have backed up your system disk. Digital recommends that you do a system disk backup before installing any software. Preparing to Install VAX FORTRAN HPO 1-9 Use the backup procedures that are established at your site. For details on performing a system disk backup, see the section on the Backup Utility in the VMS System Management Subkit. ____________________________________________________________ 1.4.5 VAX FORTRAN HPO Requirements The VAX Vector Instruction Emulation Facility (VVIEF) is a programming development tool that allows you to execute vectorized applications on VAX systems that do not have vector hardware. See the New and Changed Features manual for VMS Version 5.4 for information on how to install VVIEF on your system. Vector instructions in a vectorized application are automat- ically executed either in vector hardware or by the VVIEF, depending on the vector processing capabilities of the VAX system being used. 1-10 Preparing to Install VAX FORTRAN HPO Chapter 2 Installing VAX FORTRAN HPO ________________________________________________________________ This chapter explains how to install VAX FORTRAN HPO: o Section 2.1 contains a step-by-step description of the installation procedure. o Section 2.2 covers error recovery considerations. ____________________________________________________________ 2.1 The Installation Procedure The VAX FORTRAN HPO installation procedure consists of a se- ries of questions and informational messages. See Appendix A for a sample installation. To abort the installation procedure at any time, press CTRL/Y. When you press CTRL/Y, the installation procedure deletes all files it has created up to that point and exits. You can then start the installation again. Defaults appear in brackets ([]) throughout the installation procedure. 1. Log in to a privileged account and set your default device and directory to SYS$UPDATE. Username: SYSTEM Password: $ SET DEFAULT SYS$UPDATE 2. Invoke VMSINSTAL. @SYS$UPDATE:VMSINSTAL saveset-name device-name OPTIONS N Installing VAX FORTRAN HPO 2-1 To start the installation, invoke the VMSINSTAL command procedure from a privileged account, such as the SYSTEM account. VMSINSTAL is in the SYS$UPDATE directory. The elements that you specify when you invoke the VMSINSTAL command procedure are as follows: saveset-name The installation name for the component. For VAX FORTRAN HPO, use the following installation name: FORTHPO01n Where n represents the maintenance update of VAX FORTRAN HPO. Refer to the label on the VAX FORTRAN HPO distribution kit or the VAX FORTRAN HPO BOM or BIL for the maintenance update number of your kit. device-name The name of the device on which you plan to mount the media. For example, MUA0: is the device name used in examples in this document. OPTIONS N An optional parameter that indicates you want to see the question on release notes. If you do not include the OPTIONS N parameter, VMSINSTAL does not ask you about the release notes. You should review the release notes before proceeding with the installation in case they contain additional information about the installa- tion. If you are restarting the installation and have already reviewed the release notes, you do not need to specify OPTIONS N. Note that there are several other options you can select when you invoke VMSINSTAL. o Auto_answer option (A): Initially creates a file that contains your answers to VMSINSTAL questions and prompts. You can then use the option (and the answer file) to save time during a reinstallation (typically after upgrading your system). o Get save set option (G): Lets you store product save sets temporarily on a magnetic tape or in a disk directory. 2-2 Installing VAX FORTRAN HPO o File log option (L): Logs all activity to the termi- nal during installation. o Alternate root option (R): Lets you install the product to a system root other than that of the running system. See the VMS documentation on software installation in the VMS System Management Subkit for detailed in- formation on these options. If you specify more than one option, separate the options with commas (OPTIONS A,N). The following example invokes VMSINSTAL to install VAX FORTRAN HPO and shows the system response. This example uses the OPTIONS N release note parameter. $ @SYS$UPDATE:VMSINSTAL FORTHPO01n CSA1: OPTIONS N VAX/VMS Software Product Installation Procedure V5.4 It is dd-mmm-yyyy at hh:mm. Enter a question mark (?) at any time for help. If you do not supply either the product name or the device name, VMSINSTAL prompts you for this information later in the installation procedure. VMSINSTAL does not prompt you for any options, so be sure to include OPTIONS N on the VMSINSTAL command line to access the release notes during the installation. When you invoke VMSINSTAL, it checks the following: o Whether you logged in to a privileged account. Digital recommends that you install software from the sys- tem manager's account with your default device and directory set to SYS$UPDATE. o Whether you have adequate quotas for installation. VMSINSTAL checks for the quota values shown in Table 1-3. VMSINSTAL then checks to determine whether any users are logged in to the system. If users are logged in, you will be asked whether you want to continue the installation. If you want to continue, enter YES. If you want to stop the installation, press RETURN. Installing VAX FORTRAN HPO 2-3 3. Confirm system backup. * Are you satisfied with the backup of your system disk [YES]? VMSINSTAL asks if you are satisfied with your system backup. You should always back up your system disk before performing an installation. If you are satisfied with the backup of your system disk, press RETURN. Otherwise, enter NO to discontinue the installation. After you back up your system disk, you can restart the installation. 4. Mount the media. Please mount the first volume of the set on MUA0:. * Are you ready? YES %MOUNT-I-MOUNTED, VAX FORTRAN HPO MOUNTED ON _$$MUA0: (NODE 1) The following products will be processed: VAX FORTRAN HPO V1.n Beginning installation of VAX FORTRAN HPO V1.n at 20:01 %VMSINSTAL-I-RESTORE, Restoring product saveset A... You should now mount the first distribution volume on the device you specified when you invoked VMSINSTAL. The device name appears in the line preceding the question. VMSINSTAL then asks you if you are ready to continue with the installation. If you respond YES to indicate that you are ready, VMSINSTAL displays a message that the media containing VAX FORTRAN HPO has been mounted on the specified device and that the installation has begun. If you entered the wrong device name when you invoked VMSINSTAL and need to restart the installation, enter NO in response to the "Are you ready?" question. To abort the installation for other reasons, press CTRL/Y. 5. Select a release notes option. 2-4 Installing VAX FORTRAN HPO Release Notes Options: 1. Display release notes 2. Print release notes 3. Both 1 and 2 4. Copy release notes to SYS$HELP 5. Do not display, print, or copy release notes * Select option [2]: If you specified OPTIONS N when you invoked VMSINSTAL, you are now asked to choose one of the five options for reviewing the release notes. o If you select option 1, VMSINSTAL displays the release notes immediately on the console terminal. You can terminate the display at any time by pressing CTRL/C. o If you select option 2, VMSINSTAL prompts you for the name of the print queue that you want to use: * Queue name [SYS$PRINT]: You can press RETURN to send the file to the default output print device or you can enter another queue name. o If you select option 3, VMSINSTAL displays the release notes immediately on the console terminal and then prompts you for a queue name for the printed version. o Option 4 causes the installation to copy the release notes to the help directory. o Select option 5 if you have already reviewed the re- lease notes and are restarting the installation. Next, VMSINSTAL displays the following question: * Do you want to continue the installation [N]?: YES %VMSINSTAL-I-RELMOVED, The product's release notes have been successfully moved to SYS$HELP. To continue the installation, enter YES. Otherwise, press RETURN. In either case, the release notes are copied to a file in the SYS$HELP directory: SYS$HELP:FORTHPO01.RELEASE_NOTES Installing VAX FORTRAN HPO 2-5 After the installation, you can enter the following com- mand to review the release notes through the Help facil- ity: $ HELP FORTRAN RELEASE_NOTES NOTE The name of the release notes file installed by VMSINSTAL consists of the current product name and version number. Do not delete release notes for previous versions of VAX FORTRAN HPO (if any). 6. Purge files. * Do you want to purge files replaced by this installation [YES]? The directories SYS$HELP, SYS$LIBRARY, SYS$MESSAGE, SYS$SYSTEM, SYS$TEST, and VUE$LIBRARY may contain pre- vious versions of VAX FORTRAN HPO files. These files are replaced during the installation with new files, but the old files are not automatically purged. Purging is recom- mended. In response to the purging prompt, press RETURN to purge the files or enter NO to keep them. 7. Select installation options. The installation procedure allows you to select the compo- nents of the kit that you want to install. The choices are as follows: o VAX FORTRAN HPO compiler o FORSYSDEF.TLB system definition file o DECwindows Compiler Interface Select the components you wish to install by answering YES or NO to the following questions. If you want a more detailed description of any component, enter a question mark (?). After the explanation is displayed, you will be prompted again for a response. * Do you want to install the compiler [YES]? If you do not want to install the VAX FORTRAN HPO compiler, enter NO. If you enter NO, steps 8 and 9 are omitted. 2-6 Installing VAX FORTRAN HPO * Do you want to build a new FORSYSDEF.TLB [YES]? SYS$LIBRARY:FORSYSDEF.TLB is a library of VMS system interface definitions that can be used by FORTRAN programs. FORSYSDEF.TLB is built from a master set of definitions that is provided with VMS, and contains declarations of VMS system services, Run-Time Library routines, structures, and constants. Because FORSYSDEF.TLB is generated from VMS defini- tions, you do not need to rebuild it unless this is a new installation or you have installed a new version of VMS since the last time you installed VAX FORTRAN HPO. (The installation procedure will make a recommendation on whether FORSYSDEF.TLB should be rebuilt.) If you enter YES, the installation procedure builds a new system definition file, FORSYSDEF.TLB, based on the system definitions for the version of VMS installed on your system. * Do you want to install the DECwindows Compiler Interface [YES]? The DECwindows Compiler Interface (DWCI) for VAX FORTRAN HPO allows you to use a window-style inter- face to select compiler options when you compile a FORTRAN program. See the Release Notes Chapter 4 for more information on DWCI. The DWCI option requires that the FileView directories [VUE$LIBRARY.SYSTEM] and [VUE$LIBRARY.USER] be present on the target disk. For more information on FileView, see the VMS DECwindows User's Guide. The installation procedure then displays the components you have selected and issues the following prompt: * Is this correct [YES]? If you enter NO, the installation procedure reissues the prompts for selecting components. As noted previously, if you answered NO to the first prompt in this step ("Do you want to install the com- piler"), the following two steps (steps 8 and 9) are omitted. Installing VAX FORTRAN HPO 2-7 8. Choose the Installation Verification Procedure (IVP) option. * Do you want to run the IVP after the installation [YES]? The installation procedure now asks if you want to run the IVP. The IVP for VAX FORTRAN HPO checks to be sure that the installation is successful. It is recommended that you run the IVP. After VAX FORTRAN HPO is installed, you can run the IVP independently to verify that the software is available on your system. You might need to run the IVP after a system failure to make sure that users can access VAX FORTRAN HPO. 9. Respond to license registration queries. VAX FORTRAN HPO supports the VMS License Management Facility (LMF). The installation procedure displays li- cense information about VAX FORTRAN, VAX FORTRAN HPO, and VAX LSE. It asks whether you have registered and loaded your authorization key for each product. The following is an example of the information and the queries presented by the installation procedure: VAX FORTRAN HPO requires Product Authorization Keys (PAKs) for VAX FORTRAN, VAX FORTRAN HPO, and VAX Language-Sensitive Editor to be registered and loaded. Answer the following three questions with YES if a PAK with the specified product name and a release date equal to or later than the date shown is registered and loaded, otherwise answer NO. 2-8 Installing VAX FORTRAN HPO Product: FORTRAN Producer: DEC Version: n.n Release Date: dd-mmm-yyyy * Does this product have an authorization key registered and loaded?: YES Product: FORTRAN-HPO Producer: DEC Version: n.n Release Date: dd-mmm-yyyy * Does this product have an authorization key registered and loaded?: YES Product: LSE Producer: DEC Version: n.n Release Date: dd-mmm-yyyy * Does this product have an authorization key registered and loaded?: YES If you have not registered and loaded your PAKs, you must answer NO to these questions. You have to register and load your PAKs to successfully complete the installation. If you have not done so, you should stop the installa- tion, register and load your PAKs, and then restart the installation. 10.Read informational messages. At this point, the installation procedure displays a num- ber of informational messages that report on the progress of the installation. There are no further questions. If the installation procedure has been successful up to this point, VMSINSTAL moves the new or modified files to their target directories, updates help files, and updates DCL tables, if necessary. The new and modified files consist of the following: Installing VAX FORTRAN HPO 2-9 SYS$HELP:FORTHPO01n.RELEASE_NOTES [new] SYS$SYSTEM:FORTRAN-HPO.EXE [new] SYS$MESSAGE:FORTERR1.EXE [new] SYS$MESSAGE:FORTERR2.EXE [new] SYS$TEST:FORTRAN-HPO$IVP.COM [new] SYS$LIBRARY:DCLTABLES.EXE [modified] SYS$HELP:HELPLIB.HLB [modified] SYS$LIBRARY:FORSYSDEF.TLB [new] VUE$LIBRARY:FORTRAN$DWCI.EXE [new] VUE$LIBRARY:FORTRAN$DWCI.UID [new] VUE$LIBRARY:VUE$COMPILE.COM [new] SYS$HELP:FORTRAN$DWCI.HLB [new] The SYS$HELP:HELPLIB.HLB and SYS$LIBRARY:DCLTABLES.EXE files are updated to include the new versions of the VAX FORTRAN HPO help text and the FORTRAN command line definition. Also, if you answered YES in response to the prompt that requests a file purge at step 6, previous versions of the VAX FORTRAN HPO files are now purged. The end of the installation is indicated by the following message: %VMSINSTAL-I-MOVEFILES, files will now be moved to their target directories... 11.Observe the installation Verification Procedure (IVP). If you chose to run the IVP (step 8), VMSINSTAL now in- vokes the IVP to verify that VAX FORTRAN HPO was installed successfully. Beginning VAX FORTRAN HPO Installation Verification Procedure Compiler image identification is FORTHPO V1.n-eee Test compiler operation and error messages... Compile, link, and run program with parallel processing features... Compile, link, and run program with vector processing features... Test FORSYSDEF.TLB system definitions... Test I/O and Run-Time Library operation... 2-10 Installing VAX FORTRAN HPO If VAX FORTRAN HPO was installed successfully, the IVP displays the following: VAX FORTRAN HPO V1.n-eee TEST PASSED End of VAX FORTRAN HPO Installation Verification Procedure 12.End the installation procedure. Installation of VAX FORTRAN HPO T1.n completed at hh:mm VMSINSTAL procedure done at hh:mm $ LOGOUT SYSTEM logged out at dd-mmm-yyyy hh:mm:ss.ss When the installation is complete, you can choose to install more products or to log out (as shown here). If you removed any media from the console drive before beginning the installation, you should replace it now. Note that VMSINSTAL deletes or changes entries in the process symbol tables during the installation. Therefore, if you are going to continue using the system manager's account and you want to restore these symbols, you should log out and log in again. ____________________________________________________________ 2.2 Error Recovery If errors occur during the installation itself or when the Installation Verification Procedure (IVP) is running, VMSINSTAL displays failure messages. If the installation fails, you see the following message: %VMSINSTAL-E-INSFAIL, The installation of VAX FORTRAN HPO V1.n has failed. If the IVP fails, you see these messages: The VAX FORTRAN HPO V1.n Installation Verification Procedure failed. %VMSINSTAL-E-IVPFAIL, The IVP for VAX FORTRAN HPO V1.n has failed. Errors can occur during the installation if any of the fol- lowing conditions exist: o The operating system version is incorrect. o A prerequisite software version is incorrect. Installing VAX FORTRAN HPO 2-11 o Quotas necessary for successful installation are insuffi- cient. o System parameter values for successful installation are insufficient. o The VMS help library is currently in use. o The product license has not been registered and loaded. For descriptions of the error messages generated by these conditions, see the VMS documentation on system messages, recovery procedures, and VMS software installation. If you are notified that any of these conditions exist, you should take the appropriate action as described in the message. For information on installation requirements, see Section 1.4. If the installation fails, you must restart the installation procedure from step 2. If the installation fails due to an IVP failure, contact a Digital field service representative. 2-12 Installing VAX FORTRAN HPO Chapter 3 After Installing VAX FORTRAN HPO ________________________________________________________________ VAX FORTRAN HPO is now installed and can be invoked by all users with the FORTRAN command. The installation procedure modifies the DCL command table so that the FORTRAN command is recognized and processed. However, the previous command table is still in effect for those users who are currently logged in. All logged-in users who want to use the FORTRAN command must log out and log in again, or use the DCL command: $ SET COMMAND /TABLES=SYS$LIBRARY:DCLTABLES The following tasks can be performed after VAX FORTRAN HPO is installed: o Running the Installation Verification Procedure sepa- rately. o Making the product usable on a VAXcluster. o Setting user account quotas. o Enhancing performance. o Reporting problems. The following sections describe these tasks in detail. After Installing VAX FORTRAN HPO 3-1 ____________________________________________________________ 3.1 Running the Installation Verification Procedure Separately You usually run the Installation Verification Procedure (IVP) during installation. If you want to run the IVP separately to ensure the integrity of installed files if system problems should occur, execute the following command procedure: $ @SYS$TEST:FORTRAN-HPO$IVP.COM. If the IVP fails for any reason, the following message is displayed: VAX FORTRAN HPO VERSION V1.n TEST FAILED ____________________________________________________________ 3.2 VAXcluster Considerations If you want to run VAX FORTRAN HPO on multiple nodes of a VAXcluster, first check to see that you have the appropri- ate software license (see Section 1.3). Then, perform the following steps after you install VAX FORTRAN HPO: 1. Issue the LICENSE LOAD command, as described in the VMS License Management Utility Manual, to activate the license on each node in the VAXcluster on which VAX FORTRAN HPO is to be executed. 2. Log in to the installation node and use the VMS INSTALL Utility to determine whether FORTRAN-HPO.EXE is a known image. This is done as follows: $ INSTALL INSTALL> LIST SYS$SYSTEM:FORTRAN-HPO.EXE. If the output of the preceding LIST command shows FORTRAN- HPO.EXE to be a known image, perform all of the following steps. If FORTRAN-HPO.EXE is not a known image, omit step 4b. 3. Log in to a node on the cluster. 4. Run the VMS Install Utility as described in Section 3.4.2, with the following exceptions: a. After invoking the VMS Install Utility, enter the following command: 3-2 After Installing VAX FORTRAN HPO INSTALL> REPLACE SYS$LIBRARY:DCLTABLES.EXE This command updates the DCL tables. It should be issued on each node in the cluster, regardless of whether you activated the VAX FORTRAN HPO license (step 1) on all of the nodes. b. Then, if FORTRAN-HPO.EXE was established as a known image using the Install Utility, enter the following command: INSTALL> REPLACE SYS$SYSTEM:FORTRAN-HPO.EXE This command replaces the INSTALL entry for FORTRAN- HPO.EXE. It should be issued only on those nodes on which you activated the VAX FORTRAN HPO license in step 1. (In most cases, all of the nodes will be licensed.) 5. Repeat steps 3 and 4 for each node of the cluster. It is possible to license VAX FORTRAN HPO on a subset of the nodes in a cluster. In that case, the nodes without the VAX FORTRAN HPO license will be unable to use the high- performance features of the compiler, specifically the /VECTOR and /PARALLEL=AUTOMATIC qualifiers. ____________________________________________________________ 3.3 User Account Requirements Some products cannot be used unless certain privilege and quota requirements are met by user accounts. The following sections describe the privilege and quota requirements needed to work with VAX FORTRAN HPO. ____________________________________________________________ 3.3.1 User Account Privileges No special privileges are needed to use VAX FORTRAN HPO. There is no benefit from installing the compiler with privi- leges. After Installing VAX FORTRAN HPO 3-3 ____________________________________________________________ 3.3.2 User Account Quotas To work with VAX FORTRAN HPO, a user account does not need to meet any special quota requirements. However, for parallel- processing applications, it may be advantageous to ad- just account quotas in order to improve performance. See Section 4.6.1 for information about tuning issues related to parallel processing. ____________________________________________________________ 3.4 Enhancing VAX FORTRAN HPO Performance This section includes information on system tuning and ex- plains how to install VAX FORTRAN HPO as a shared image. ____________________________________________________________ 3.4.1 Tuning Your System After you install VAX FORTRAN HPO, you might want to ad- just your system to enhance performance or lower the use of some system resources. Information about tuning your system is included in the VAX FORTRAN Performance Guide. Tuning issues related to parallel processing are addressed in Section 4.6.1. ____________________________________________________________ 3.4.2 Installing VAX FORTRAN HPO as a Shared Image If you expect VAX FORTRAN HPO to be used extensively on your system, you can reduce the system overhead and memory re- quirements by installing it as a shared image. To install VAX FORTRAN HPO as a shared image on a system that is currently running, use the VMS Install Utility (INSTALL). It is recom- mended that you install VAX FORTRAN HPO as shared on a system that has been rebooted recently because the available space in the global page table is less likely to be fragmented. To install VAX FORTRAN HPO as a shared image, you must first determine the number of available global pages and global sections on your system. See Section 1.4.2.1 for information on how to verify and modify the number of global pages and global sections. Section 1.4.2 contains the guidelines for setting these parameters. 3-4 After Installing VAX FORTRAN HPO Once you have reset the system parameter values, invoke the VMS Install Utility from a privileged account and then install VAX FORTRAN HPO as a shared image: $ INSTALL INSTALL> ADD SYS$SYSTEM:FORTRAN-HPO.EXE/OPEN/SHARED/HEADER_RESIDENT INSTALL> EXIT Now, add the following lines to the appropriate system startup command file so that VAX FORTRAN HPO is available as a shared image each time the system is started. (If your site has modularized its startup procedures, be sure you add the lines to the correct file.) The default startup command file for VMS Version 5.0, for example, is SYS$MANAGER:SYSTARTUP_ V5.COM. $ INSTALL ADD SYS$SYSTEM:FORTRAN-HPO.EXE/OPEN/SHARED/HEADER_RESIDENT EXIT When you install VAX FORTRAN HPO as a shared image you need to increase the global pages and global sections parameters (see Section 1.4.2). ____________________________________________________________ 3.5 Determining and Reporting Problems If you encounter a problem while using VAX FORTRAN HPO, report it to Digital. Depending on the nature of the problem and the type of support you have, you can take one of the following actions: o Call Digital if your software contract or warranty agree- ment entitles you to telephone support. o Submit a Software Performance Report (SPR). o Fill out and submit a Reader's Comments form if the prob- lem has to do with the VAX FORTRAN HPO documentation. Reader's Comments forms are at the back of each manual. Use the form from the manual in which you found the error. Include the section and page number. After Installing VAX FORTRAN HPO 3-5 Review the Software Product Description (SPD) and Warranty Addendum for an explanation of warranty. If you encounter a problem during the warranty period, report the problem as indicated above or follow alternate instructions provided by Digital for reporting SPD nonconformance problems. ____________________________________________________________ 3.6 VAX FORTRAN Version 5 Maintenance Updates This section describes components of the VAX FORTRAN Version 5 product that are replaced by equivalent components of the VAX FORTRAN HPO product. These replacements allow use of both products simultaneously on the same system. This sharing of components has an important implication with respect to the installation of future upgrades to VAX FORTRAN Version 5. When you install a maintenance update of VAX FORTRAN, you must be careful not to overwrite any of the VAX FORTRAN HPO components. If the installation procedure detects that you have selected to overwrite some common components (files), it notifies you that it will not overwrite these files and asks you to confirm this. If these files are overwritten, you will have to reinstall VAX FORTRAN HPO to reestablish the components that it requires. The following VAX FORTRAN HPO components are used by both products: o The command line definition file for the FORTRAN command is replaced by the VAX FORTRAN HPO installation process. It is a superset of and replaces the FORTRAN command line definition file used by VAX FORTRAN Version 5. Use of the Version 5 compiler is supported on systems where the VAX FORTRAN HPO kit is installed by compiling with the /NOHPO qualifier. o The help file for the FORTRAN command is replaced by the VAX FORTRAN HPO installation process. It is a superset of and replaces the help file used by VAX FORTRAN Version 5. Some of the information in the VAX FORTRAN HPO is not pertinent to VAX FORTRAN. For example, use of the new directives, the new qualifiers, and the statement form of ASSERT is not accepted by VAX FORTRAN Version 5. 3-6 After Installing VAX FORTRAN HPO o The error message definition files for the FORTRAN command are replaced by the VAX FORTRAN HPO installation process. They are a superset of and replace the error message definition files used by VAX FORTRAN Version 5. o The DECwindows compiler support files for the FORTRAN command are replaced by the VAX FORTRAN HPO installation process. They are a superset of and replace the FORTRAN command processing support used by VAX FORTRAN Version 5. After Installing VAX FORTRAN HPO 3-7 Chapter 4 Release Notes ________________________________________________________________ This chapter contains information about the features of VAX FORTRAN HPO Version 1.0, differences between VAX FORTRAN HPO and previous VAX FORTRAN versions, corrections included in VAX FORTRAN HPO Version 1.0, and other topics. These topics are of interest to both system management and application programmers. ____________________________________________________________ 4.1 Overview of VAX FORTRAN HPO This section briefly describes the new and changed features of VAX FORTRAN HPO, as compared with VAX FORTRAN Version 5. The VAX FORTRAN High-Performance Option (VAX FORTRAN HPO) compiler is an updated version of the VAX FORTRAN Version 5 compiler that offers the following major enhancements: o Autodecomposition of DO loops for parallel execution on VAX multiprocessor systems o Vectorization of DO loops for execution on VAX processors that support the VAX Vector Architecture, such as the VAX 9000 series and the VAX 6000-400 series The VAX FORTRAN HPO compiler supports the entire VAX FORTRAN language. Several new qualifiers, the ASSERT statement (which can also be used as a directive), and the INIT_DEP_FWD direc- tive are also supported. Release Notes 4-1 Although the documentation for this product remains largely unchanged, three major and several minor new functional capabilities are supported. The major new capabilities are as follows: o Automatic analysis of array references inside DO loops (called Dependence Analysis) o Generation of code for running eligible loops in parallel for high-performance execution on VAX multiprocessor systems (called Autodecomposition) o Generation of code for running eligible loops using vector instructions for high-performance execution on VAX vector processors (called Vectorization). In addition, VAX FORTRAN HPO supports new capabilities by the VAX Source Code Analyzer (SCA) and VAX Language-Sensitive Editor (LSE) products: o VAX FORTRAN HPO supports new capabilities in VAX SCA Version 2, with new and improved generation of Analysis Data records in .ANA files and support for the VAXset Program Design Facility (PDF). o VAX FORTRAN HPO generates new diagnostic records for use with VAX LSE Version 3 to allow enhanced diagnosis of source program constructs that inhibit autodecomposition and vectorization. PDF features are described in detail in Section 4.2. The VAX FORTRAN Performance Guide has additional information on the use of LSE capabilities. ____________________________________________________________ 4.1.1 New Qualifiers and Qualifier Parameters Several new qualifiers and qualifier parameters have been implemented to invoke and control the new features mentioned in the previous section. FORTRAN users logged in to the system when the installation of VAX FORTRAN HPO is performed must log out and then log back in again to obtain the new command line definition. 4-2 Release Notes The new qualifiers and qualifier parameters are: /ASSUME=([NO]ACCURACY_SENSITIVE,[NO]DUMMY_ALIASES) Default: /ASSUME=(ACCURACY_SENSITIVE,NODUMMY_ALIASES) /CHECK=[NO]ASSERTIONS Default: /CHECK=NOASSERTIONS /BLAS=([NO]INLINE,[NO]MAPPED) Default: /BLAS=(INLINE,NOMAPPED) /DESIGN=([NO]COMMENTS,[NO]PLACEHOLDERS) Default: /NODESIGN /DIRECTIVES=[NO]DEPENDENCE Default: /DIRECTIVES=DEPENDENCE /[NO]HPO Default: /HPO /PARALLEL=([NO]AUTOMATIC, [NO]MANUAL) Default: /NOPARALLEL /SHOW=([NO]DATA_DEPENDENCES, [NO]LOOPS) Default: /SHOW=(NODATA_DEPENDENCES,NOLOOPS) /SYNCHRONOUS_EXCEPTIONS Default: /NOSYNCHRONOUS_EXCEPTIONS /TERMINAL=STATISTICS Default: /NOTERMINAL /VECTOR Default: /NOVECTOR /WARNINGS=([NO]ALIGNMENT,[NO]TRUNCATED_SOURCE) Default: /WARNINGS=(ALIGNMENT,NOTRUNCATED_SOURCE) The /HPO qualifier is particularly important because it controls whether the FORTRAN command is processed by the VAX FORTRAN Version 5 compiler image or the VAX FORTRAN HPO Version 1.n compiler image. Release Notes 4-3 You should also take special note of the new /ASSUME qual- ifier, which is supported by the VAX FORTRAN HPO compiler. It can influence optimization behavior and affect whether programs compiled with VAX FORTRAN and VAX FORTRAN HPO get identical results. Detailed information on these new qualifiers and qualifier parameters is provided in the sections that follow. ____________________________________________________________ 4.1.1.1 /ASSUME Qualifier The /ASSUME qualifier specifies what the compiler can assume about program behavior without affecting correct results when it optimizes code. The qualifier has the following form: /ASSUME = ([NO]ACCURACY_SENSITIVE,[NO]DUMMY_ALIASES) [NO]ACCURACY_SENSITIVE Specifies whether the results of floating-point operations are strongly affected by certain code transformations and controls whether these transformations are allowed. These changes may or may not be detrimental to the overall accuracy of program results. If NOACCURACY_SENSITIVE is specified, the compiler is free to reorder floating-point operations, based on algebraic identities (inverses, associativity, and distribution). This allows the compiler to generate a vectorized form of sum reductions (such as dot products), to make calls to vectorized first order linear recurrence routines, and to move divide operations outside loops. If ACCURACY_SENSITIVE is specified, the compiler uses only naive scalar rules for calculations. This setting can prevent use of the optimizations that are allowed when you specify NOACCURACY_SENSITIVE. [NO]DUMMY_ALIASES Specifies whether dummy (formal) arguments are permitted to share memory locations with common block variables or other dummy arguments. 4-4 Release Notes This option is provided because many important opportu- nities for vector processing are lost when the compiler is forced to assume that this type of memory sharing does occur in any given subprogram. If DUMMY_ALIASES is specified, program semantics require frequent recomputations on expressions involving dummy arguments. This is the default assumption for all previous releases of VAX FORTRAN. It assures identical results but inhibits some vectorization and some scalar optimizations, and thus slows performance. If NODUMMY_ALIASES is specified, program semantics allow optimizations on expressions involving dummy arguments and common block variables. This is the default assumption for VAX FORTRAN HPO. It results in higher performance but may cause result differences if the programs depend on such aliases. It should not be used for source programs that violate FORTRAN-77 rules for overlapping memory references in dummy arguments (see the ANSI standard for FORTRAN-77 (X3.9-1978), Section 15.9.3.6). If a program containing dummy aliasing is compiled with the NODUMMY_ALIASES in effect, the run-time behavior of the program will be unpredictable. The run-time behavior will depend on the exact optimizations that are performed. In some cases, normal results will occur; however, in other cases, results will differ because the values used in computations involving the offending shared locations will differ. ____________________________________________________________ 4.1.1.2 /BLAS Qualifier The /BLAS qualifier controls how the compiler processes calls to the Basic Linear Algebra Subroutines (BLAS). The BLAS routines supported by the /BLAS qualifier are Level 1 routines (vector-vector routines). These routines were defined by Lawson, Hanson, Kincaid, and Krogh (1978). They are widely used for applications that repetitively apply simple transforms to two-dimensional arrays, such as matrix inversion or the solution of systems of linear equations. The /BLAS qualifier has the following form: /BLAS=([NO]INLINE,NOMAPPED) Release Notes 4-5 INLINE Specifies that calls to the routines supported by the /BLAS qualifier are to be treated as known language con- structs and VAX object code is to be generated to compute the corresponding operations at the call site, instead of calling a user-supplied routine. MAPPED Specifies that calls to the routines supported by the /BLAS qualifier are to be treated as calls to the opti- mized implementations of these routines in the BLAS1$ and BLAS1$V portions of the Run-Time Library MTH$ facility. The /BLAS qualifier is also accepted on the OPTIONS state- ment. The default is /BLAS=INLINE. Command line qualifiers have the following effects on the processing of BLAS routine calls: o If /NOBLAS is specified, all BLAS calls are treated as ordinary external routines. o If /VECTOR or /PARALLEL=AUTO is in effect and /BLAS=INLINE is specified, the generated code for the loops may use vector instructions or be decomposed to run on multiple processors. The following BLAS routines are supported by the /BLAS quali- fier: o IxAMAX, find the index of the maximum of the absolute values of the elements of a vector. o xASUM, sum the absolute values of the elements of a vec- tor. o xAXPY, scale the elements of a vector and add in another vector. o xCOPY, copy the elements of a vector to a new location. o xDOT, take the dot product of a vector. o xNRM2, take the Euclidean norm of a vector. o xROT, apply a Givens plane rotation. o xROTG, generate the elements for a Givens plane rotation. 4-6 Release Notes o xSCAL, scale the elements of a vector. o xSWAP, swap the elements of two vectors. The data types supported by the /BLAS qualifier are REAL (S prefix), DOUBLE PRECISION (D prefix), COMPLEX (C prefix), and DOUBLE COMPLEX (Z prefix). ____________________________________________________________ 4.1.1.3 /CHECK Qualifier (ASSERTIONS Parameter) The ASSERTIONS parameter enables or disables assertion check- ing. Assertions provide the compiler with information that can resolve unknown data dependences. See the VAX FORTRAN Performance Guide for detailed information about the use of assertions. If /CHECK=ASSERTIONS, the compiler will generate the appro- priate run-time code to evaluate the asserted expression. If the assertion tests false at run time, the program is stopped and an error message is issued. If /CHECK=NOASSERTIONS, the compiler is free to use the as- sertion information in its optimizations and transformations, but no code is generated to test the validity of the asser- tions at run time. Regardless of the qualifier setting, if the compiler can determine at compile time that the assertion is false, it will issue a diagnostic. Assertions can be coded as statements or general compiler directives. (See the VAX FORTRAN Language Reference Manual for syntax information.) ____________________________________________________________ 4.1.1.4 /DESIGN Qualifier See Section 4.2.1 for details about the /DESIGN qualifier. ____________________________________________________________ 4.1.1.5 /DIRECTIVES Qualifier The /DIRECTIVES qualifier allows the programmer to enable and disable the recognition of general compiler directives (comments that begin with the prefix CDEC$). Recognition of parallel processing directives (comments that begin with the prefix CPAR$) is controlled by the /PARALLEL=MANUAL qualifier. Release Notes 4-7 The qualifier has the following form: /DIRECTIVES=([NO]DEPENDENCE) Dependence directives are the only class currently sup- ported by the /DIRECTIVE qualifier. The default of /DIRECTIVES=DEPENDENCE allows dependence directives (CDEC$ INIT_DEP_FWD) to be selected. The negative setting disables recognition. See the VAX FORTRAN Performance Guide for a description of the use of this directive for debugging vec- torized programs. ____________________________________________________________ 4.1.1.6 /HPO Qualifier The /HPO qualifier allows the VAX FORTRAN HPO Version 1.n compiler and the VAX FORTRAN Version 5 compiler to coexist on the same system, while still allowing both compilers to be invoked with the FORTRAN command. It specifies which compiler is to be used to perform a compilation. The qualifier has the following form: /[NO]HPO /HPO invokes the VAX FORTRAN HPO Version 1.n compiler and /NOHPO invokes the VAX FORTRAN Version 5 compiler. If /NOHPO is specified and the command line contains a qual- ifier that is specific to the VAX FORTRAN HPO compiler (for example, /ASSUME), a DCL error message is issued. (Note: The VAX FORTRAN Version 5.4 compiler supports the /NOHPO form as well. This allows development of command procedures that operate identically regardless of whether VAX FORTRAN HPO is installed.) /HPO is the default when VAX FORTRAN HPO Version 1.n is installed on a system. In a cluster environment, it is safe to install the Command Language Definition file (CLD file) for VAX FORTRAN HPO on all cluster nodes, even if the VAX FORTRAN HPO compiler is not installed or licensed on some system. This will insure that the /[NO]HPO qualifier is recognized on all systems. 4-8 Release Notes Using DCL symbols to specify command qualifiers can cause problems. For example, if you establish the following DCL symbol, the introduction of the /HPO qualifier will cause DCL to issue a warning to the effect that all qualifiers preceding /HPO will be ignored. $ F :== "FORTRAN/STANDARD=ALL" . . . $ F MYPROG.FOR DCL issues the warning because of the way it processes al- ternate command syntax qualifiers such as /HPO (the /DML and /RSX qualifiers behave the same way). To avoid this error condition, specify /HPO or /NOHPO explicitly in the symbol definition, for example: $ F :== "FORTRAN/HPO/STANDARD=ALL" The CLD file controlling this behavior is provided with the compiler kit. The installation procedure places it in the file SYS$LIBRARY:FORTCLD.CLD. If sites have any opera- tional difficulties due to these choices or need to modify FORTCLD.CLD to solve an unexpected problem, please submit a problem report detailing the circumstances and the change. ____________________________________________________________ 4.1.1.7 /PARALLEL Qualifier (AUTOMATIC and MANUAL Parameters) The format of the /PARALLEL qualifier is as follows: /PARALLEL=([NO]AUTOMATIC,[NO]MANUAL) AUTOMATIC Specifies that DO loops are to be automatically decom- posed, enabling them to run in parallel mode on multipro- cessor systems. MANUAL Specifies that CPAR$ directives are to be parsed and parallel code is to be generated for loops preceded by CPAR$ DO_PARALLEL. The default is /NOPARALLEL. Release Notes 4-9 Specifying /NOPARALLEL or /PARALLEL=(NOAUTOMATIC,NOMANUAL) has the same effect as omitting the /PARALLEL qualifier. Compiler directives relating to parallel processing (DO_ PARALLEL, PRIVATE, CONTEXT_SHARED, SHARED, LOCKON, LOCKOFF) are treated as comments and no object code is generated to support execution of parallel DO loops. Specifying /PARALLEL without any options has the same effect as specifying /PARALLEL=(AUTOMATIC,MANUAL). This causes the compiler to do the following: o Generate object code that supports execution of parallel DO loops o Interpret parallel-processing compiler directive state- ments contained in the source code See the VAX FORTRAN User Manual and the VAX FORTRAN Performance Guide for details on the use of the /PARALLEL qualifier. ____________________________________________________________ 4.1.1.8 /SHOW Qualifier (DATA_DEPENDENCES and LOOPS Parameters) The effects of the DATA_DEPENDENCES and LOOPS parameters on the /SHOW qualifier are as follows: DATA_DEPENDENCES Specifies that diagnostic information about the following types of loops is to be included in the listing file: o Loops that are ineligible for dependence analysis o Loops that contain inhibitors to vectorization or decomposition It also specifies, when the /DIAGNOSTICS qualifier is used, that detailed information about data dependences and other inhibitors to vector or parallel processing are to be included in the LSE diagnostic file. The LSE diagnostic file is the only acceptable vehicle for capturing these detailed diagnostics; the listing file and terminal are not sufficiently flexible to allow these diagnostics to be displayed in a usable form. 4-10 Release Notes LOOPS Specifies that loop structure and statement execution order chosen by dependence analysis, autodecomposition, and vectorization are to be included in the listing file. ____________________________________________________________ 4.1.1.9 /SYNCHRONOUS_EXCEPTIONS Qualifier The /SYNCHRONOUS_EXCEPTIONS qualifier specifies whether vector arithmetic exceptions (such as floating-point overflow on a vector add instruction) are reported immediately after the instruction that caused the exception. The qualifier has the following form: /[NO]SYNCHRONOUS_EXCEPTIONS The default is /NOSYNCHRONOUS_EXCEPTIONS. The effect of this qualifier on exception reporting varies depending on whether the vector emulator or vector hardware is being used: o If the vector emulator is being used, exceptions are reported immediately after the instruction that caused them regardless of which qualifier was specified (/NOSYNCHRONOUS_EXCEPTIONS or /SYNCHRONOUS_EXCEPTIONS). o If vector hardware is being used, the exception is re- ported immediately only if the /SYNCHRONOUS_EXCEPTIONS qualifier was specified. If /NOSYNCHRONOUS_EXCEPTIONS was specified, exceptions are not reported at predictable program locations and the actual locations reported may vary from one vector processor to another. In the latter case, exceptions are reported on some vector instruction encountered after the instruction that caused the error. If the default is in effect, exceptions are reported at any point after completion of the operation but before completion of the procedure containing the error condition. The default setting allows uninterrupted completion of vec- tor operations. This results in higher performance, but it also makes it more difficult to isolate the location of any exceptions. Release Notes 4-11 The default behavior does not apply to special entry points used for the Run-Time Library (RTL) routines that implement the FORTRAN intrinsic functions. ____________________________________________________________ 4.1.1.10 /TERMINAL Qualifier The /TERMINAL qualifier specifies whether certain compilation messages are displayed at the user's terminal during an interactive compile session. The qualifier has the following form: { [NO]STATISTICS } /[NO]TERMINAL = { ALL } { NONE } [NO]STATISTICS Specifies whether the compiler displays the program unit name and the number of code bytes generated when it com- pletes processing that program unit. ALL Same interpretation as /TERMINAL=STATISTICS. NONE Same interpretation as /TERMINAL=NOSTATISTICS. The default is /NOTERMINAL. ____________________________________________________________ 4.1.1.11 /VECTOR Qualifier The /VECTOR qualifier specifies whether the compiler should analyze source code for data dependences and include vector instructions in the generated code. This process is called vectorization. The qualifier has the following form: /[NO]VECTOR The default is /NOVECTOR. 4-12 Release Notes ____________________________________________________________ 4.1.1.12 /WARNINGS Qualifier (ALIGNMENT and TRUNCATED_SOURCE Parameters) The effects of the ALIGNMENT and TRUNCATED_SOURCE parameters on the /WARNINGS qualifier are as follows: ALIGNMENT Causes diagnostic messages to be issued when the com- piler detects variables or arrays (created in COMMON or EQUIVALENCE statements) that cross natural boundaries for their data size. For example, a diagnostic message is is- sued if /WARNINGS=ALIGNMENT is in effect and the virtual address of a REAL*8 variable is not a multiple of 8. This can occur, for example, if the REAL*8 variable is in a common block and is preceded by an odd number of INTEGER variables. If misaligned data inhibits vectorization, this inhibi- tion will be reported in a dependence diagnostic when the /VECTOR, /DIAGNOSTICS and /SHOW=DATA_DEPENDENCES quali- fiers are specified. The default is ALIGNMENT. TRUNCATED_SOURCE Causes a warning diagnostic message (EXCCHASRC) to be issued when the compiler reads a source line with a state- ment field that exceeds the maximum column width. The maximum column width is column 72 or 132, depending on the value of the /EXTEND_SOURCE qualifier or the OPTIONS statement qualifier in effect. This option has no effect on truncation; lines that exceed the maximum column width are always truncated. The default is NOTRUNCATED_SOURCE. ____________________________________________________________ 4.1.2 Assertion Declarations Assertions allow the programmer to provide the compiler with information about the values that can be taken on by speci- fied variables. They are used to make testable declarations concerning run-time properties of the program unit. An asser- Release Notes 4-13 tion can be coded in the form of a statement or a directive: ASSERT (e) (Statement form) CDEC$ ASSERT (e) (Directive form) The notation "e" represents a logical expression. Assertions allow the compiler to perform vectorization or decomposition that would otherwise be inhibited because of possible incorrect program results. For example, when compiling a loop of the following form, the compiler will inhibit vectorizing the loop because it cannot determine whether statement 9 or statement 10 must appear first in the vectorized code (as explained in the section on dependence analysis in the VAX FORTRAN Performance Guide. 0008 DO I=2,N 0009 A(I) = B(I) + C(I) 0010 B(I+K) = X * C(I) 0011 ENDDO However, if the programmer knows that the value of K is always greater than 0, the programmer would use an assertion before the beginning of the loop. For example: ASSERT (K .GT. 0) The compiler would apply the assertion to the unknown value in the array reference B(I+K), and this would allow the compiler to vectorize the statement. If the /CHECK=ASSERTIONS qualifier is specified, the compiler would also issue an error message at run time if the value of K does not meet the condition. (See Section 4.1.1.3 for more details on how the /CHECK=ASSERTIONS qualifier interacts with assertion declarations.) Assertions offer a number of advantages over other forms of directives or statements that have been used for this purpose in earlier FORTRAN compilers: o They can be tested, thereby making the code more resistant to errors associated with unexpected changes. 4-14 Release Notes o They can apply to more than one loop in a routine. o They can be used to improve scalar optimizations and decomposition as well as vectorization performance. o They provide more specific information that can be used in dependence analysis, optimization, and transformation decisions. One important property of assertions is that they are context sensitive. In particular, they are not "global" assertions; they are assumed to be true only at the location where they appear. If a variable that appears in the asserted expression is modified, the asserted expression is presumed not to hold any longer. Thus, in order to be effective, assertions must be placed so as to remain valid at all array references to which they relate. The results of the unknown dependence diagnosis can be used to determine which loops might benefit from assertions. See the VAX FORTRAN Performance Guide for examples and infor- mation about the use of the ASSERT statement. ____________________________________________________________ 4.2 VAXset Program Design Facility The VAXset Program Design Facility (PDF) consists of en- hancements to language processors (such as VAX FORTRAN), the VAX Language-Sensitive Editor (LSE), and the VAX Source Code Analyzer (SCA) to provide the ability to embed application design information in the program source, to have this infor- mation analyzed by PDF components, and to allow for inquiries and reports on the design information. VAX FORTRAN's support of PDF lies in two areas: o The ability to analyze the text of source comments for design information and to add that information to the SCA analysis data file for later access through SCA. o The ability to allow LSE placeholders, including a new pseudocode placeholder, to be used in place of certain FORTRAN language syntax. Information about the use of placeholders is added to the SCA analysis data file, if selected. Release Notes 4-15 The following sections discuss only those portions of PDF support that are specific to the VAX FORTRAN compiler. For more information on PDF, see the VAX Language-Sensitive Editor and the VAX Source Code Analyzer documentation. ____________________________________________________________ 4.2.1 /DESIGN Compile Command Qualifier The /DESIGN qualifier specifies that the compiler is to analyze the source code for program design information in comment text or LSE placeholders. The qualifier has the following form: { [NO]COMMENTS } /[NO]DESIGN = { [NO]PLACEHOLDERS } COMMENTS Specifies that the text of each comment-either full-line or end-of-line comment-is to be analyzed for program design information. Comment text is scanned for tags that are defined in the current LSE environment file. Certain tags are predefined by LSE; however, you can add, change, or remove tags as desired. (See the VAX Language-Sensitive Editor documentation for details.) If you also specify the /ANALYSIS_DATA qualifier, in- formation about tags found, text of tagged and untagged comments, and their locations in the source file is in- cluded in the SCA analysis data file. You can then use SCA and LSE commands to retrieve the design information. At compile time, the compiler reports any errors detected by comment analysis routines. If LSE and SCA are not installed or if a severe error is reported by the comment analysis routines, the compilation is aborted. Groups of full-line comments are identified by the com- piler as "comment blocks", including lines which con- sist of white space followed by a "!" comment introducer. Differences in indentation of full-line comments is ig- nored for the purposes of grouping comments into blocks. A comment block is ended when a completely blank line or a line which is not a full-line comment is detected. 4-16 Release Notes End-of-line comments, where non-blank text is followed by a "!" comment introducer, are treated as self-contained comment blocks. Comments from source that is included by means of the INCLUDE or DICTIONARY statements are also analyzed for design information. The end of an INCLUDE module or DICTIONARY definition, by itself, does not end a comment block. Comments beginning with a "D" or "d" in column 1 are not examined for program design information. PLACEHOLDERS Specifies that LSE placeholders (in well-defined contexts) are to be treated as valid program syntax. VAX FORTRAN recognizes five types of placeholders defined by LSE: {required-placeholder} {required-list-placeholder}... [optional-placeholder] [optional-list-placeholder]... «pseudocode-placeholder» An alternative syntax that uses the characters "<<" and ">>" for a pseudocode placeholder is also accepted by VAX FORTRAN: <> Note that there is no list form of pseudocode placeholder. A placeholder must be terminated before the end of the line, and the closing delimiter must correspond to the opening delimiter. For example, the following placeholder is invalid: [invalid-delimiter} Any text may appear inside a delimiter except for the closing delimiter. There is no ability to "quote" a clos- ing delimiter in order to allow its inclusion as text. Nesting of delimiters is not supported. If you also specify the /ANALYSIS_DATA qualifier, informa- tion about placeholders and their use is included in the SCA analysis data file. Release Notes 4-17 If placeholder analysis is performed on a compilation unit that contains placeholders in valid contexts, the compiler does not generate an object file. An object file is generated, however, if no placeholders are found in the compilation unit undergoing placeholder analysis. If LSE placeholders are present in the source file and you do not specify the /DESIGN=PLACEHOLDER qualifier, the compiler will treat the placeholders as invalid syntax and will generate an error message. ____________________________________________________________ 4.2.1.1 Allowed Contexts for Placeholders A placeholder can be used to replace either an entire FORTRAN statement or a part of a statement. As a replacement for an entire statement, there are no restrictions on where a placeholder may appear. Otherwise, as a replacement for a portion of a statement, a placeholder is generally treated as an undeclared identifier whose implicit type is INTEGER. This implicit typing is unaffected by the IMPLICIT or IMPLICIT NONE statements, but is affected by the /[NO]I4 command qualifier or the OPTIONS statement qualifier. Each occurrence of a placeholder is considered as a unique instance and is unaffected by earlier uses of a syntactically identical placeholder. For example, in the following code sequence, each occurrence of "[abc]" is considered to be a never-before-seen identifier. INTEGER [abc] REAL [abc] The implicit typing of placeholders as INTEGER allows them to be used in most reasonable contexts, but if they are used in contexts where an integer identifier would not be allowed, semantic error messages are generated. For example, the following statement is invalid due to the type mismatch: CHAR_VAR = CHAR_VAR // [placeholder] Like any other undeclared variable, placeholders are consid- ered scalars and cannot be used in a context that requires the variable to be declared as an array. 4-18 Release Notes Given these restrictions, placeholders can appear in the following contexts: o As a variable name in a type specification, COMMON, DATA, DIMENSION, EQUIVALENCE, RECORD, SAVE, or VOLATILE state- ment, and CPAR$ CONTEXT_SHARED or CPAR$ PRIVATE directives o As the symbolic name in an EXTERNAL or PARAMETER statement o As an integer expression o As the target of an assignment statement o As the name of subroutine in a CALL statement o As the name of a function in a function reference o As an integer variable in an ASSIGN or assigned GOTO statement o As the control variable in a DO statement or implied DO list in an I/O statement o As the lock variable in a CPAR$ LOCKON or CPAR$ LOCKOFF directive (the placeholder is treated as LOGICAL*4 in these contexts only) o As an integer variable in an I/O statement other than the unit or format specifier Placeholders are not allowed in the following contexts: o As the symbolic name in a BLOCK DATA, ENTRY, FUNCTION, INTRINSIC, PROCEDURE, or PROGRAM statement o As formal (dummy) argument names in an ENTRY, FUNCTION, or PROCEDURE statement o As the name of a common block o As a structure name o In a NAMELIST statement, either as the group name or as one of the variables to be included in the group o As the unit or format specifier in an I/O statement Release Notes 4-19 ____________________________________________________________ 4.3 DECwindows Compile Verb Support in FileView Support for the DECwindows Compiler Interface (DWCI), as accessed through FileView's Compile verb, was introduced in VAX FORTRAN Version 5.3. It has been updated to support all of the new qualifiers that apply specifically to VAX FORTRAN HPO (see Section 4.1.1). The Compile verb is contained in FileView's Programming menu. The Compile verb allows compile command options to be selected using a window interface instead of the usual DCL qualifiers. The compiler defaults are used as the initial configuration of compile command options; new configurations with different option settings can be established for use by later compilations. The DWCI interface is used automatically when you use the Compile verb to compile a source file that has a .FOR file type. More information is available by using the Help menu in the dialog box with the name: Compile a FORTRAN Program. (This dialog box appears when you select the Compile verb in the Programming menu). The DWCI interface for VAX FORTRAN is entirely separate from the compiler image and is contained in the following files: SYS$COMMON:[VUE$LIBRARY.USER]FORTRAN$DWCI.EXE SYS$COMMON:[VUE$LIBRARY.USER]FORTRAN$DWCI.UID SYS$COMMON:[SYSHLP]FORTRAN$DWCI.HLB ____________________________________________________________ 4.4 VAX FORTRAN Performance Guide The VAX FORTRAN Performance Guide is a new manual in the FORTRAN documentation set. It describes the concepts dis- cussed in these release notes in more detail and gives usage instructions as well as performance information on other aspects of VAX FORTRAN usage. 4-20 Release Notes ____________________________________________________________ 4.5 Compiler Deficiencies in VAX FORTRAN Version 5 and VAX FORTRAN HPO The following sections document restrictions and known prob- lems that are shared by VAX FORTRAN HPO Version 1.0 and VAX FORTRAN Version Version 5.4. ____________________________________________________________ 4.5.1 Restrictions on Standards Checking Source statements that do not conform to FORTRAN language standards are detected by the VAX FORTRAN compiler under the following circumstances: o The statements contain ordinary syntax and semantic er- rors. o A source program containing nonconforming statements is compiled with the /STANDARD or /CHECK qualifiers. Given these circumstances, the compiler is able to detect most instances of nonconforming usage. It does not, however, detect all instances because the /STANDARD qualifier does not produce checks for all nonconforming usage at compile time. In general, the unchecked cases of nonconforming usage arise from the following situations: o The standard violation results from conditions that cannot be checked at compile time. o The compile-time checking would be prone to false alarms. Most of the unchecked cases occur in the interface between calling and called subprograms. However, other cases are not checked, even within a single subprogram. The following list identifies those items that are known to be unchecked. Section references in parentheses refer to the FORTRAN-77 Standard, ANSI X3.9-1978. 1. Use of a data item before it is defined. (6.6) 2. Use of the SAVE statement to ensure that data items or common blocks retain their values when reinvoked. (8.9) Release Notes 4-21 3. Association of a character data item that is on both the right and left sides of a character assignment statement. (10.4) 4. Mismatch in order, number, or type in passing actual arguments to subprograms. This includes improper array dimensioning. (15.9) 5. Association of one or more actual arguments with a data item in a common block when calling a subprogram that assigns a new value to one or more of the arguments. (15.9.3.6) ____________________________________________________________ 4.5.2 Using /DML and /PARALLEL Qualifiers Because of the restriction on performing I/O operations within a parallel loop (see Section 15.2.1 in the VAX FORTRAN User Manual), care must be taken using parallel loops with database applications. In particular, applications using the VAX DBMS product, especially the /DML qualifier on the FORTRAN command line, should not use the DO_PARALLEL direc- tive for any loop that executes database operations. Such use will cause unpredictable results due to inconsistent I/O control states among the processes executing the loop iterations. ____________________________________________________________ 4.5.3 Maintaining Password Security The FORTRAN compiler echoes, exactly as entered, the command line in the compilation summary section of any listing file that it generates. If an account password is required on an input or output file, we suggest that a logical name be defined for the password and that the logical name be used on the command line. Otherwise, the password will be printed in the command line echo part of the compilation summary section. ____________________________________________________________ 4.5.4 Status of Bug Fixes See the online release notes for descriptions of bug fixes and known bugs. 4-22 Release Notes ____________________________________________________________ 4.6 Additional Information Needed for FORTRAN Parallel Processing This section gives additional information that will be help- ful to those who are using parallel-processing features pro- vided by the compiler. The system interface used with VAX FORTRAN HPO is the same as the one used with directed decom- position in VAX FORTRAN Version 5, so the same concepts apply to both. ____________________________________________________________ 4.6.1 Tuning Issues for Parallel Processing Parallel-processing programs may fail to execute because of insufficient system resources. You may have to adjust some resource-utilization parameters, both for the entire system and for individual user accounts. You may also want to adjust some parameters in order to achieve better performance for programs executing in parallel. For more details on these parameters as they relate to the FORTRAN parallel-processing support, refer to the VAX FORTRAN User Manual, Chapter 15. ____________________________________________________________ 4.6.1.1 System Parameters When a parallel application is executed, much of the local memory and many common blocks of the application are mapped to global sections. (VMS uses this method to share data between processes.) Users must ensure that the number of global sections, global pages, and global page file sections required by a parallel application are available. To allow enough space for this global data, some of the system's SYSGEN parameters may need to be increased. The three SYSGEN parameters that are most important are GBLPAGFIL, GBLPAGES, and GBLSECTIONS. Note that these parameters are not dynamic; you must reboot your system before any modifications to them can take effect. You should adjust the parameters one at a time in order to avoid modifying some of them unnecessarily. See the discussion of these parameters in the VAX FORTRAN User Manual, Section 15.4.1. With respect to the total amount of global pages (GBLPAGES parameter) and global page file size (GBLPAGFIL parameter), it is important to note that com- mon blocks are all shared by default when /PARALLEL=AUTOMATIC Release Notes 4-23 is in effect. This means you must sum the size of all common block program sections to compute the number of pages needed. ____________________________________________________________ 4.6.1.2 User Parameters One of the authorization quotas, the PGFLQUO quota, may need to be adjusted for any account that will be running parallel applications. This quota is shared by all processes in a job and thus may require an adjustment to allow for the additional processes used in parallel processing. You can adjust some programs to reduce their use of pagefile quota. For example, it is advisable to move a large array into a common block with an attribute of shared if the array has a memory allocation attribute of context-shared and it is declared within either the main program or a subprogram that is never invoked from within a parallel loop. This is advisable because context-shared variables cause the FORTRAN run-time parallel-processing support to allocate one shared copy and n private copies, one for each process. These copies use up pagefile quota and often require the quota to be raised above what would be needed for the corresponding serial program. If the private copies are never needed, you can reduce the pagefile quota requirements by changing the variable from context-shared to shared (which is allowed only for common blocks). ____________________________________________________________ 4.6.1.3 Working Set Parameters Parallel-processing applications typically use large amounts of memory. To achieve better performance for an application, you may find it advisable to make adjustments to the working set size parameters, both for the system and for user ac- counts. Refer to the Guide to VMS Performance Management for information on how to adjust working set size. ____________________________________________________________ 4.6.2 Restrictions on Parallel-Processing Applications The following restrictions apply to parallel-processing applications (in addition to restrictions documented in the VAX FORTRAN User Manual): 4-24 Release Notes o Images using the FORTRAN parallel-processing support cannot run from a detached process where there is no DCL CLI. o The name of any common blocks defined to be shared within a routine compiled with the /PARALLEL=MANUAL qualifier must not contain more than 26 characters. ____________________________________________________________ 4.6.3 Linking Against FORTRAN Parallel-Processing Support The following section describes how to link agains the FORTRAN run-time parallel-processing support. Section 4.7.3 describes problems that can occur when linking objects compiled with /PARALLEL. ____________________________________________________________ 4.6.3.1 Linking with the /NOSYSSHR Qualifier Please note that the FORTRAN run-time parallel-processing support references a global symbol CTL$GL_PSTFLAGS defined in the system symbol table (SYS$SYSTEM:SYS.STB). If you prefer to include the FORTRAN parallel-processing run- time object modules (included in SYS$LIBRARY:STARLET.OLB) in your image, you need to include the system symbol table as input in your linking operation. This allows the linker to resolve this external symbol reference. The following is an example of a linking operation: $ LINK/NOSYSSHR MY_OBJECT.OBJ,SYS$SYSTEM:SYS.STB ____________________________________________________________ 4.6.4 Using PPL$ Run-Time Library Routines There is a known problem with the interaction between rou- tines compiled with /PARALLEL and the run-time library PPL$ routines. The result of this problem is that the FORTRAN parallel-processing application completes, but the subpro- cesses that are created during its execution are not properly deleted and are left in a spin loop, using up CPU time. These subprocesses must be stopped by the user. The easiest way to stop them is to either log out of the account that executed the parallel application or explicitly stop them using the DCL command STOP. Release Notes 4-25 ____________________________________________________________ 4.7 Compatibility Issues Involving VAX FORTRAN HPO The following sections describe the compatibility among source programs that are compiled, linked, and run using VAX FORTRAN HPO and previous versions of VAX FORTRAN. ____________________________________________________________ 4.7.1 Compilation Compatibility Some of the default qualifier settings for VAX FORTRAN HPO differ from those for the VAX FORTRAN Version 5 compiler. The differences can be summarized as follows: o VAX FORTRAN Version 5 does not support the /ASSUME qual- ifier. Its behavior corresponds to /ASSUME=(ACCURACY_ SENSITIVE, DUMMY_ALIASES). The VAX FORTRAN HPO default for this qualifier is /ASSUME=(ACCURACY_SENSITIVE, NODUMMY_ ALIASES). o VAX FORTRAN Version 5 does not support values on the /PARALLEL qualifier. The effective default when /PARALLEL is specified in VAX FORTRAN is /PARALLEL=(NOAUTOMATIC,MANUAL). The VAX FORTRAN HPO default when /PARALLEL is specified is /PARALLEL=(AUTOMATIC,MANUAL). o VAX FORTRAN Version 5 does not support the ALIGNMENT value on the /WARNINGS qualifier, but the behavior corresponds to the /WARNINGS=NOALIGNMENT setting. The VAX FORTRAN HPO default in this case is /WARNINGS=ALIGNMENT. o VAX FORTRAN Version 5 does not support the /BLAS quali- fier. Its behavior corresponds to /NOBLAS. The VAX FORTRAN HPO default is /BLAS=INLINE. For a description of the behavior of the qualifiers, see Section 4.1.1 and the VAX FORTRAN Performance Guide. Note that the VAX FORTRAN Version 5 defaults apply when the FORTRAN/NOHPO command is specified. If problems arise with programs compiling or executing in ways that differ from VAX FORTRAN Version 5, it is possible that the new defaults are inappropriate for the program. 4-26 Release Notes ____________________________________________________________ 4.7.2 Source Compatibility VAX FORTRAN HPO supports all source code supported by VAX FORTRAN Version 5. New diagnostics for data dependences and misaligned data are optional. ____________________________________________________________ 4.7.3 Object Compatibility Object files created by the VAX FORTRAN HPO Version 1.n compiler are fully compatible with object files created by the VAX FORTRAN Version 5 compiler. They can be freely intermixed in the same executable image. The following rule must be followed when linking objects compiled with /PARALLEL: If any parallel loop appears in the program, then all routines on the calling path from the main program to the routine containing the parallel loop must be com- piled with either the AUTOMATIC or MANUAL parameters (or both) on the /PARALLEL qualifier. If this is not done, linker errors will occur. If a routine uses a parallel DO loop compiled with /PARALLEL in VAX FORTRAN Version 5 and you do not want VAX FORTRAN HPO to create any additional parallel loops, then compile with /PARALLEL=MANUAL explicitly. Programs compiled with the VAX FORTRAN HPO compiler refer to VMS system support routines that are not supported on VMS systems prior to Version 5.4. Therefore, the linking and execution of output modules associated with VAX FORTRAN HPO compilations requires VMS Version 5.4 or higher. ____________________________________________________________ 4.7.4 Image Compatibility The images linked with VAX FORTRAN HPO object modules are executable only on VMS Version 5.4 or higher. Release Notes 4-27 ____________________________________________________________ 4.8 Source Program Diagnostic Messages New source program diagnostic messages included with VAX FORTRAN HPO Version 1.0 are described in the sections that follow. ____________________________________________________________ 4.8.1 Messages Supporting Dependence Analysis of DO Loops The following errors inhibit dependence analysis from being performed on a DO loop. These messages are generated if either the /VECTOR or /PARALLEL=AUTOMATIC and the /SHOW=DATA_ DEPENDENCES command line qualifiers are specified. They are generated to the listing file and, if one is requested, to the diagnostic file. _____________________________________________________________ Error Mnemonic______Code__Text/Explanation_________________________ NODEPNEST I Dependence analysis inhibited due to inhibitor in loop nested inside DO loop A loop nested within this DO loop has been inhibited from having dependence analysis performed on it, thus eliminat- ing this DO loop from being analyzed. NODEPDEEP I Dependence analysis inhibited due to more than 7 loops nested inside DO loop Dependence analysis is only performed on the deepest seven levels. 4-28 Release Notes _____________________________________________________________ Error Mnemonic______Code__Text/Explanation_________________________ NODEPFLOW I Dependence analysis inhibited due to transfer into or out of DO loop Due to the potential that a DO loop is entered or exited without executing all iterations, neither vectorization nor autodecomposition can be performed on the DO loop. A STOP or RETURN statement is considered as a transfer out of a loop. The compiler will not perform the dependence analysis on the loop. NODEPINT4 I Dependence analysis inhibited due to non-integer control variable Dependence analysis is only performed for DO loops whose control variable is a 4-byte INTEGER. NODEPVOLAT I Dependence analysis inhibited due to volatile control variable Dependence analysis is only performed for DO loops whose control variable is not volatile. NODEPCOMMN I Dependence analysis inhibited due to call in DO loop and COMMON loop control variable As a side-effect of the call, the DO loop control variable has the potential of being modified, thus changing the number of iterations performed for the DO loop. NODEPEQUIV I Dependence analysis inhibited due to equivalenced loop control variable Dependence analysis is only performed for DO loops whose control variable is a 4-byte INTEGER. Release Notes 4-29 _____________________________________________________________ Error Mnemonic______Code__Text/Explanation_________________________ NODEPPAR I Dependence analysis inhibited due to parallel loop nested inside DO loop A nested, manually decomposed loop pre- vents dependence analysis on outer DO loops. NODEPOVLP I Dependence analysis inhibited due to potential overlap dummy arguments and common variables in DO loop Due to the potential overlap of a dummy argument and a common variable, depen- dence analysis will not be performed. This error is controlled by the command line setting for the /ASSUME=[NO]DUMMY_ ALIASES qualifier. NODEPSTMT I Dependence analysis inhibited due to use of inhibitor statement inside DO-loop Certain FORTRAN statements inhibit the analysis of a DO-loop. Some of them include: Assigned GOTOs Computed GOTOs Invocation of character function LOCKON or LOCKOFF directive specified Reference to format containing vari- able format expression _______________________Direct_access_I/O_operation___________ ____________________________________________________________ 4.8.2 Messages Supporting Vectorization of Specific Statements The following errors inhibit vectorization from being applied on specific statements. These messages are generated if the /VECTOR/SHOW=DATA_DEPENDENCE/DIAGNOSTICS qualifiers are specified. These errors are only output to the diagnostic file, not to the listing file or terminal. 4-30 Release Notes _____________________________________________________________ Error Mnemonic______Code__Text/Explanation_________________________ NOVECVOLARR I Vectorization inhibition: Use of volatile array Volatile arrays have dependences which the compiler is unaware of, thus they can not be vectorized. NOVECDTARR I Vectorization inhibition: Data type not supported for array There are no vector instructions to work on the data type specified for the array. NOVECVOLIND I Vectorization inhibition: Use of volatile array index The compiler can not identify all of the dependences for volatile array indexes, thus they can not be vectorized. NOVECDTIND I Vectorization inhibition: Use of unsup- ported data type in array index Data type for index prevents vectoriza- tion. NOVECALIGN I Vectorization inhibition: Misaligned array Data used for vector instructions must be aligned on natural boundaries, based on its data type. NOVECSUBP I Vectorization inhibition: Reference to subprogram Vectorization is inhibited for any data which potentially can be modified in the subprogram. Release Notes 4-31 _____________________________________________________________ Error Mnemonic______Code__Text/Explanation_________________________ NOVECACC I Vectorization inhibition: Qualifier /ASSUME=ACCURACY prevents recurrence vectorization A recurrence has been identified, but the transformation required to vectorize the statement can not be performed because the /ASSUME=ACCURACY qualifier is in ____________________effect.__________________________________ ____________________________________________________________ 4.8.3 Messages Supporting Vectorization The following errors identify when vectorization was in- hibited and attempt to identify why it was inhibited. These messages are generated if the /VECTOR/SHOW=DATA_DEPENDENCE /DIAGNOSTICS qualifiers are specified. These errors are only output to the diagnostic file, not to the listing file or terminal. _____________________________________________________________ ________________Message_Texts_and_Explanations_______________ Unknown dependence using xxxx The compiler has analyzed the dependences between array references and is unable to determine the order in which the references must occur. This is often due to not knowing the possible range of values for an expression used as part of the array index. 4-32 Release Notes _____________________________________________________________ ________________Message_Texts_and_Explanations_______________ Nonuniform dependence The compiler has detected that the relative order of references to common memory locations, with respect to two array references in the loop, are not uniform for all such locations. For example: A(I) = B(I) * A(N-I). Some locations are accessed first by A(I) and others by A(N-I). Outer level vectorization inhibited The compiler has analyzed the dependences between array references at different DO-loop levels and is unable to determine the order in ______________which_the_references_must_occur._______________ These errors relate to assertion declarations. See Section 7.2.1 in the VAX FORTRAN Performance Guide for information on how to handle these errors. Within LSE, you can use Review Mode to apply suggested as- sertions to handle these errors. To do so, move the cursor to the suggested assertion that you wish to use and press CTRL/G. This instructs LSE to apply the suggested assertion to the source file. LSE then prompts for a confirmation that this change is desirable. If so, enter YES and the suggested assertion will be inserted. ____________________________________________________________ 4.8.4 Messages Supporting the VAXset Program Design Facility The following source program diagnostic messages have been added in support of the VAXset Program Design Facility. Release Notes 4-33 _____________________________________________________________ Error Mnemonic______Code__Text/Explanation_________________________ DESCOMERR W Error in processing design information The comment analysis routines have de- tected an error in the text of a comment, such as an undefined keyword in a struc- tured tag. Additional messages relating to the error are also displayed. DESCOMSEVERR F A serious error has occurred processing /DESIGN=COMMENTS The comment analysis routines have de- tected a serious error that prevents further comment analysis in the current compilation. Additional messages relat- ing to the error are also displayed. The compilation is aborted. DESIGNTOOOLD F /DESIGN=COMMENT processing routines are too old for the compiler The version of the comment analy- sis routines present on the system is not supported by this version of VAX FORTRAN. Install a newer version of the VAX Language-Sensitive Editor to obtain the most recent version of the comment analysis routines. PLACEEOL F Placeholder not terminated before end of line The closing delimiter of a placeholder was not found before the end of the line. PLACENODESIGN E Placeholder not valid without /DESIGN=PLACEHOLDERS A placeholder was found but /DESIGN=PLACEHOLDERS was not specified on the compile command line. 4-34 Release Notes _____________________________________________________________ Error Mnemonic______Code__Text/Explanation_________________________ PLACENODOT E Repetition of pseudocode placeholder not allowed A pseudocode placeholder followed by an ellipsis (...) was found, indicating a list placeholder, which is not supported. PLACENOOBJ I Placeholders detected-no object code generated One or more placeholders were found in the current compilation unit and therefore no object code was generated for that unit. PLACENOTVAL E Placeholder not valid in this context A placeholder was found in a context that ____________________is_not_supported.________________________ Release Notes 4-35 Appendix A Sample Installation ________________________________________________________________ This appendix contains a sample installation of each of the components on the VAX FORTRAN HPO kit. Note that this is only a sample. Sometimes the installation procedure is modified in maintenance updates of this product. Because this installation guide is not usually revised for maintenance updates, be sure to read the Read Before Installing or Using VAX FORTRAN HPO letter before you install this product. This letter notes any significant changes to the installation sample shown here. This sample was run on a system that had no previous version of VAX FORTRAN HPO installed. Depending on which layered products you have on your system, you might see additional messages and questions when you perform your installation. The sample installation assumes that DECnet has been shut down, that no users are logged on to your system, and that OPTIONS N is specified to print the release notes. The Installation Verification Procedure (IVP) runs at the end of the installation. Sample VAX FORTRAN HPO Installation $ @sys$update:vmsinstal forthpo010 mua0: VAX/VMS Software Product Installation Procedure V5.4 It is 4-APR-1990 at 18:05. Enter a question mark (?) at any time for help. * Are you satisfied with the backup of your system disk [YES]? Sample Installation A-1 Please mount the first volume of the set on MUA0: * Are you ready? YES %MOUNT-I-MOUNTED, FORHPO mounted on _MUA0: The following products will be processed: FORTHPO V1.n Beginning installation of FORTHPO V1.n at 18:05 %VMSINSTAL-I-RESTORE, Restoring product save set A ... %VMSINSTAL-I-RELMOVED, Product's release notes have been moved to SYS$HELP. VAX FORTRAN HPO V1.n-1 Copyright © Digital Equipment Corporation, 1990. All rights reserved. * Do you want to purge files replaced by this installation [YES]? The VAX FORTRAN HPO kit is divided into three components: Compiler (includes help text, command definition, IVP) FORSYSDEF.TLB (VMS system symbol definition library) DECwindows Compiler Interface (FileView Compile verb support) Please select the components you wish to install by answering YES or NO to the following questions. If you want a more detailed description of any component, answer with a question mark "?"; after the explanation is displayed, you will be prompted again for a response. * Do you want to install the compiler [YES]? FORSYSDEF.TLB, which provides VMS interface definitions for FORTRAN applications, is not present and therefore should be created. For more information on FORSYSDEF.TLB, enter a question mark "?" at the following prompt. * Do you want to create a new FORSYSDEF.TLB [YES]? * Do you want to install the DECwindows Compiler Interface [YES]? You have selected the following components: Compiler FORSYSDEF.TLB DECwindows Compiler Interface * Is this correct [YES]? A-2 Sample Installation VAX FORTRAN HPO requires Product Authorization Keys (PAKs) for VAX FORTRAN, VAX FORTRAN HPO, and VAX Language-Sensitive Editor to be registered and loaded. Answer the following three questions with YES if a PAK with the specified product name and a release date equal to or later than the date shown is registered and loaded, otherwise answer NO. Product: FORTRAN Producer: DEC Version: 5.n Release Date: dd-mmm-yyyy * Does this product have an authorization key registered and loaded? yes Product: FORTRAN-HPO Producer: DEC Version: 1.n Release Date: dd-mmm-yyyy * Does this product have an authorization key registered and loaded? yes Product: LSE Producer: DEC Version: 3.0 Release Date: 1-NOV-1989 * Does this product have an authorization key registered and loaded? yes This kit contains an Installation Verification Procedure (IVP) to verify the correct installation of the VAX FORTRAN HPO compiler. The IVP will be placed in: SYS$TEST:FORTRAN-HPO$IVP.COM After the installation is complete, you can invoke the command file at any time to reverify that VAX FORTRAN HPO is installed and working correctly. * Do you want to run the IVP after the installation [YES]? yes All questions regarding the installation of VAX FORTRAN HPO have now been asked. Depending upon your configuration, time estimates for the installation(s) have been provided. Compiler: 1 to 10 minutes FORSYSDEF.TLB: 5 to 30 minutes DWCI support 1 to 2 minutes Sample Installation A-3 +-------------------------------------------------------+ | Installing the VAX FORTRAN HPO Compiler | +-------------------------------------------------------+ +-------------------------------------------------------+ | Installing FORSYSDEF.TLB | +-------------------------------------------------------+ +-------------------------------------------------------+ | Installing DECwindows Compiler Interface | +-------------------------------------------------------+ Your VMS system will now be updated to include the following new and modified file(s): SYS$HELP:FORTRAN-HPO010.RELEASE_NOTES [new] SYS$SYSTEM:FORTRAN-HPO.EXE [new] SYS$MESSAGE:FORTERR1.EXE [new] SYS$MESSAGE:FORTERR2.EXE [new] SYS$TEST:FORTRAN-HPO$IVP.COM [new] SYS$HELP:HELPLIB.HLB [modified] SYS$LIBRARY:DCLTABLES.EXE [modified] SYS$LIBRARY:FORSYSDEF.TLB [new] VUE$LIBRARY:FORTRAN$DWCI.EXE [new] VUE$LIBRARY:FORTRAN$DWCI.UID [new] SYS$HELP:FORTRAN$DWCI.HLB [new] %VMSINSTAL-I-MOVEFILES, Files will now be moved to their target directories... Beginning VAX FORTRAN HPO Installation Verification Procedure Compiler image identification is FORT-HPO V1.n-1 Test compiler operation and error messages... Compile, link and run program with parallel processing features... Test FORSYSDEF.TLB system definitions... A-4 Sample Installation Test I/O and Run-Time Library operation... VAX FORTRAN HPO V1.n-1 IVP PASSED End of VAX FORTRAN HPO Installation Verification Procedure Installation of FORTHPO V1.n completed at 18:20 Sample Installation A-5