HP Concurrent FORTRAN Release Document
Versions 1.0.p and 1.0.mpx
January 4, 1991
This Release Document describes HP Concurrent
FORTRAN, versions 1.0.p and 1.0.mpx. It
supplements the HP_Concurrent_FORTRAN_User's
Guide (017996-A00).
Copyright Hewlett-Packard Co. 1991
First Printing: February 1991
UNIX is a registered trademark of AT&T in the USA and other countries.
NOTICE
The information contained in this document is subject to change without
notice.
HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL
INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE. Hewlett-Packard shall not be liable for
errors contained herein or for incidental or consequential damages in
connection with the furnishing, performance or use of this material.
Hewlett-Packard assumes no responsibility for the use or reliability of its
software on equipment that is not furnished by Hewlett-Packard.
This document contains proprietary information which is protected by
copyright. All rights reserved. No part of this document may be
photocopied, reproduced, or translated to another language without the prior
written consent of Hewlett-Packard Company.
RESTRICTED RIGHTS LEGEND. Use, duplication, or disclosure by government is
subject to restrictions as set forth in subdivision (c) (1) (ii) of the
Rights in Technical Data and Computer Software Clause at DFARS 252.227.7013.
Hewlett-Packard Co., 3000 Hanover Street, Palo Alto, CA 94304
Reader_Notice
This document resides online in the /install/doc/apollo directory. You may
print the online copy of this document by using one of the following
commands:
If your installation uses the SysV lp print daemon, use an lp command similar
to the following:
lp -dprinter_name pathname
where pathname is the pathname of the release notes, usually
For MC680x0-based workstations:
/install/doc/apollo/hpcf.v.1.0.mpx__notes
For Series 10000 workstations:
/install/doc/apollo/hpcf.v.1.0.p__notes
If your installation uses the Domain print system, use the following Aegis
/com/prf command:
prf pathname -pr printer_name -npag
If your installation uses the BSD lpd print daemon, use an lpr command
similar to the following:
lpr -Pprinter_name pathname
iii
Contents
CHAPTER 1 OVERVIEW OF HP CONCURRENT FORTRAN
1.1 Informational Notes ................................... 1-1
CHAPTER 2 INSTALLATION INFORMATION
2.1 The mrgri Tool ........................................ 2-3
CHAPTER 3 DOCUMENTATION
3.1 Documentation Errors .................................. 3-1
CHAPTER 4 BUGS AND BUG FIXES
Contents iv
CHAPTER 1
Overview of HP Concurrent FORTRAN
This document describes the HP Concurrent FORTRAN (HPCF) product. HPCF
boosts the performance of FORTRAN programs compiled for execution on the
Series 10000 workstation by performing concurrent, vector, and scalar
optimizations. Although HPCF performs these optimizations automatically when
you specify the -mp option on the compiler command line, HPCF includes a
variety of options, directives, and assertions that allow you to fine-tune
the optimization process. Also included with HPCF are high-performance
vector and Basic Linear Algebra Subroutine (BLAS) libraries.
All information contained herein applies to PRISM-based workstations only.
For more information about HP Concurrent FORTRAN, refer to the HP_Concurrent
FORTRAN_User's_Guide (017996-A00).
1.1 Informational Notes
Please take note of the following:
o You cannot call fork or system in a program that has been compiled
with any of the -mp options.
o All processors executing an HPCF-compiled program are unavailable for
use by other programs (that is, they are on "hot standby") even when
I/O is in progress.
o To avoid name-space conflicts, the name of the BLAS error-handling
function is BLAS$XERBLA, not XERBLA.
o If your program makes any calls to the fpp$control system call, you
must ensure that every thread makes the call.
o To ensure that a program compiled with HPCF produces the same
numerical answers as when compiled without HPCF, use the -mpassume=a
and -mproundoff=0 options. However, using these options may decrease
program performance.
Version 1.0 1-1 HP Concurrent FORTRAN
HP Concurrent FORTRAN 1-2 Version 1.0
CHAPTER 2
Installation Information
You can install HP Concurrent FORTRAN (HPCF) on a user node (one equipped
with monitor and keyboard) or a Domain Server Processor (DSP) that is running
SR10.1 or a more recent version of the Domain/OS operating system. Also, you
must have previously installed Domain FORTRAN version 10.8 or greater in
order to install and run HPCF. After completing the installation, run the
FORTRAN test file (included with this Tape Distribution) to verify that the
HP Concurrent FORTRAN compiler was installed correctly. The procedure for
running this verification test is given at the end of the chapter.
There are two versions of HPCF:
Version Runs on Generates Code For
------- ------------------------ -------------------------
1.0.p Series 10000 workstations Series 10000 workstations
1.0.mpx 680x0-based workstations Series 10000 workstations
The media contains the selection and overlay files for both versions, as
listed in the following:
Product Version Selection File(s) Override File(s)
------- ------- ----------------- ----------------
hpcf 1.0.p aa.hpcf ov.hpcf
hpcf 1.0.mpx aa.hpcf ov.hpcf
Selection and override files reside in the directory
//<authorized_area>/install/templates/apollo/<product_name>.v.<version>
where <authorized_area> is your authorized area, <product_name> is the
product name (as listed in the first column of the table above), and
<version> is the version number (as listed in the second column of the table
above).
The disk storage requirements are:
o HPCF version 1.0.p: 5525 blocks
o HPCF version 1.0.mpx: 4675 blocks
Version 1.0 2-1 HP Concurrent FORTRAN
For directions about how to install this product and about the use of
selection and override files, see the manual Installing_Software_with
Apollo's_Release_and_Installation_Tools, Order No. 008860-A02.
Enclosed with this Tape Distribution is a FORTRAN test file. This file
performs a minimal verification test that the HP Concurrent FORTRAN compiler
has been correctly installed. To do this testing, perform the following steps
after the installation has been completed:
1. Set your current directory to where the testing can be performed.
2. Execute the following command:
% f77 -O4 -mp //<authorized area>/install_utils/test.f
The system should display the following information:
test.f:
HP Concurrent Fortran 1.0 k083155 901102 3-Jan-1991 10:53:53
0 errors in file test.f
This step should compile the code and produce the executable image,
a.out.
3. Execute the following command:
% a.out
The system should display the following information:
Matrix Multiply on 4 Processors: 300x300 <- 300x300 x 300x300
Arrays have the same results
Serial Time: 17.892 Serial MFlops: 3.018
HP-CF Time: 0.605 HP-CF MFlops: 89.316
Speedup: 29.593
Matrix Multiply Time within expected range
Note that the exact timings will vary with the number of processors.
However, the "Matrix Multiply Time within expected range" statement
should be displayed.
4. To delete the files created for this test, execute the following command:
% rm -f a.out
HP Concurrent FORTRAN 2-2 Version 1.0
2.1 The mrgri Tool
Using the mrgri tool, you can merge hpcf 1.0.p and hpcf 1.0.mpx, producing a
cmpexe file that can run on any Apollo workstation and generate code for the
Series 10000.
SR10.3 includes a new version of the mrgri installation tool. The SR10.2
version of mrgri enabled you to merge only patches with products, or two
products that were the same but with different ISP types. The new version is
less restrictive; it permits you to merge any two products, assuming the
products are deemed mergeable in the products' release notes. A significant
advantage of the new mrgri is the ability to merge Product Support Kits
(PSKs) with Domain/OS.
The new version of mrgri has two new command line switches: -merge and
-cmpexe. Otherwise, the command-line syntax is the same as the SR10.2
version. The -merge and -cmpexe switches are described below. For
descriptions of the other command-line options and a more comprehensive
description of mrgri, see Installing Software with Apollo's Release and
Installation Tools (008860-A02) and the mrgri help file in
//<authorized_area>/install/help/mrgri.hlp.
The new mrgri syntax is
mrgri { -merge | -cmpexe } [-i] -s source_AA [-t target_AA]
[-v new_version] [-p new_name] primary_product secondary_product
You must use either the -merge or the -cmpexe switch:
-merge Used to merge two different products; for example, a patch with
a layered product or with Domain/OS, or a PSK with Domain/OS.
The two products to be merged must either have the same ISP type
(m68k, a88k, or cmpexe) or the primary_product must be a cmpexe
product.
-cmpexe Used to create compound (cmpexe) products; that is, to combine
two products with the same name but with different ISP types.
The two products to be combined must have different ISP types.
NOTE: The mrgri tool checks only that the ISP types of the
primary_product and secondary_product conform to the rules
described for the -merge and -cmpexe switches; it does not check
the products or product names in any way to ensure that they can be
merged successfully. Before attempting to merge products, check
the products' release notes to determine whether the product can be
merged, which versions can be merged, and what restrictions you
must follow, if any, when installing and using the merged product.
Version 1.0 2-3 HP Concurrent FORTRAN
CHAPTER 3
Documentation
HP Concurrent FORTRAN is documented in the following:
o HP_Concurrent_FORTRAN_User's_Guide (Order No. 017996-A00)
o HP_Concurrent_FORTRAN_Quick_Reference (Order No. 018884-A00)
Refer to these documents for information about the product.
NOTE: Modifications that have been made to the HPCF product
since the publication of the HP_Concurrent_FORTRAN
User's_Guide may result in discrepancies between the
transformed program listings appearing in the text and
those you produce using the same command lines.
3.1 Documentation Errors
The HP_Concurrent_FORTRAN_User's_Guide contains the following errors:
o On page 1-5, the manual incorrectly implies that dbx, the UNIX
debugger, is available for debugging programs on the Series 10000
workstation. The only debugger that is currently shipped with the
Series 10000 workstation is the Domain Distributed Debugging
Environment (dde).
o The command line appearing at the bottom of page 5-13 omits the
-mpinline option. The full command line should read:
f77 -P -mpinl -mpinfl=subfil.klib -mpinll=2 -mpo=0 -mpr=0 -mpd=0 sqwv.f
o At the top of page 8-18, the second and third lines in the
transformed listing for the example program invariantif.f should be
in reverse order. The entire transformed listing should read:
IF (ADD) THEN
C*HP-PARALLEL* PARALLEL REGION SHARED (N,X,Y) LOCAL (I)
C*HP-PARALLEL* PARALLEL DO
Version 1.0 3-1 HP Concurrent FORTRAN
DO 1 I=1,N
X(I) = X(I) + Y(I)
1 CONTINUE
C*HP-PARALLEL* END PARALLEL REGION
ELSE
C*HP-PARALLEL* PARALLEL REGION SHARED (N,X,Y) LOCAL (I)
C*HP-PARALLEL* PARALLEL DO
DO 2 I=1,N
X(I) = X(I) - Y(I)
2 CONTINUE
C*HP-PARALLEL* END PARALLEL REGION
ENDIF
o At the top of page 8-21, the transformed listing for the example
program reduction3.f incorrectly lists the scalar variable RR1 as an
array element. The transformed listing should read:
II1 = vec_$rmax (A(1),MAX0 (M, 0),RR1)
AMAX = AMAX1 (AMAX, RR1)
HP Concurrent FORTRAN 3-2 Version 1.0
CHAPTER 4
Bugs and Bug Fixes
There are no known bugs in the HPCF product.
Version 1.0 4-1 HP Concurrent FORTRAN