hide random home http://www.sgi.com/tech/relnotes/6_0rel/pfa_dev.html (Silicon Surf Promotional CD, 01/1995)

pfa_dev Release Notes

pfa_dev Release Notes

1 Introduction

2 Installation Information

3 New Features for This Release

4 Known Problems and Workarounds

A Dynamic Shared Objects

 



                                               - 1 -




                    6.0 Power Fortran Accelerator

                    Release Notes


























































                                               - 2 -























                    ________________________________________________
                    Contributors:
                    Written by Bron Nelson
                    ________________________________________________
                    c Copyright 1993, Silicon Graphics, Inc. - All rights reserved

                    This document contains proprietary information
                    of Silicon Graphics, Inc.  The contents of this
                    document may not be disclosed to third parties,
                    copied, or duplicated in any form, in whole or
                    in part, without the prior written permission of
                    Silicon Graphics, Inc.

                    Restricted Rights Legend

                    Use, duplication, or disclosure of the technical
                    data contained in this document by the
                    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 52.227-7013, and/or in similar or
                    successor clauses in the FAR, or the DOD or NASA
                    FAR Supplement.  Unpublished rights reserved
                    under the Copyright Laws of the United States.
                    Contractor/manufacturer is Silicon Graphics,
                    Inc., 2011 N. Shoreline Blvd., Mountain View, CA
                    94039-7311.

                    6.0 Power Fortran Accelerator Release Notes
                    Document Number 007-1669-010

                    Silicon Graphics, Inc.










                                               - 3 -



                    Mountain View, California

                    Silicon Graphics and IRIS are registered
                    trademarks and POWER Fortran Accelerator, POWER
                    Series, Personal IRIS, IRIS Crimson, IRIS
                    Indigo, and IRIX are trademarks of Silicon
                    Graphics, Inc.  VMS is a trademark of Digital
                    Equipment Corporation.


                    1.  Introduction

                    The Silicon Graphicsr Power Fortran Accelerator
                    (PFA) optimizes Fortran 77 code for Silicon
                    Graphics' multiprocessor systems.  It performs
                    data dependency analysis and inserts special
                    compiler directives to parallelize DO loops
                    where possible.  The PFA option includes:

                       o The Power Fortran Accelerator, pfa (this is
                         the 32bit version)

                       o The MIPSPro Fortran 77 parallel front end,
                         fef77p (this is the 64bit version).

                       o The pfa(1) manual page

                    You can use the PFA option (-pfa) with the
                    Fortran 77 compiler f77(1) on any IRIS system.

                    Note:  You can develop, compile, and even run
                           parallel code on any Silicon Graphics
                           IRIS workstation.  However, the
                           performance benefits of parallel
                           execution on multiple processors are
                           possible only when you run the
                           application program on an IRIS
                           multiprocessor system.
                    This document contains the following chapters:

                      1.  Introduction

                      2.  Installation Information

                      3.  New Features for This Release

                      4.  Known Problems and Workarounds

                    Note:  Packaged with this software is a separate
                           sheet that contains the Software License
                           Agreement.  This software is provided to











                                               - 4 -



                           you solely under the terms and conditions
                           of the Software License Agreement.
                           Please take a few moments to review the
                           Agreement.


                    1.1  Release_Identification_Information

                    Following is the release identification
                    information for PFA:

                    Software Option Product        Power Fortran
                                                   Accelerator

                    Version                        6.0
                    Product Code                   SC4-PFTN-6.0

                    System Software Requirements   IRIX 6.0
                                                   IRIS Development
                                                   Option 6.0

                    1.2  Online_Release_Notes

                    After you install the online documentation for a
                    product (the relnotes subsystem), you can view
                    the release notes on your screen.

                    If you have a graphics system, select ``Release
                    Notes'' from the Tools submenu of the Toolchest.
                    This displays the grelnotes(1) graphical browser
                    for the online release notes.  Refer to the
                    grelnotes(1) man page for information on options
                    to this command.

                    If you do not have a graphics system, you can
                    use the relnotes command.  Refer to the
                    relnotes(1) man page for accessing the online
                    release notes.

                    1.3  Product_Support

                    Silicon Graphics, Inc., provides a comprehensive
                    product support maintenance program for its
                    products.

                    If you are in the U.S. or Canada America and
                    would like support for your Silicon Graphics-
                    supported products, contact the Technical
                    Assistance Center at 1-800-800-4SGI.  If you are
                    outside the U.S. or Canada, contact the Silicon
                    Graphics subsidiary or authorized distributor in
                    your country.










                                               - 5 -






























































 



                                               - 1 -




                    6.0 Power Fortran Accelerator

                    Release Notes


























































                                               - 2 -























                    ________________________________________________
                    Contributors:
                    Written by Bron Nelson
                    ________________________________________________
                    c Copyright 1993, Silicon Graphics, Inc. - All rights reserved

                    This document contains proprietary information
                    of Silicon Graphics, Inc.  The contents of this
                    document may not be disclosed to third parties,
                    copied, or duplicated in any form, in whole or
                    in part, without the prior written permission of
                    Silicon Graphics, Inc.

                    Restricted Rights Legend

                    Use, duplication, or disclosure of the technical
                    data contained in this document by the
                    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 52.227-7013, and/or in similar or
                    successor clauses in the FAR, or the DOD or NASA
                    FAR Supplement.  Unpublished rights reserved
                    under the Copyright Laws of the United States.
                    Contractor/manufacturer is Silicon Graphics,
                    Inc., 2011 N. Shoreline Blvd., Mountain View, CA
                    94039-7311.

                    6.0 Power Fortran Accelerator Release Notes
                    Document Number 007-1669-010

                    Silicon Graphics, Inc.










                                               - 3 -



                    Mountain View, California

                    Silicon Graphics and IRIS are registered
                    trademarks and POWER Fortran Accelerator, POWER
                    Series, Personal IRIS, IRIS Crimson, IRIS
                    Indigo, and IRIX are trademarks of Silicon
                    Graphics, Inc.  VMS is a trademark of Digital
                    Equipment Corporation.


                    2.  Installation_Information

                    This chapter lists supplemental information to
                    the IRIS Software Installation Guide.  The
                    information listed here is product-specific; use
                    it with the installation guide to install this
                    product.

                    2.1  PFA_Subsystems

                    Following is a description of the PFA
                    subsystems:

                    pfa_dev.sw.pfa           The Power Fortran
                                             Accelerator executable
                                             images

                    pfa_dev.man.pfa          The on-line manual page

                    pfa_dev.man.relnotes     This document


                    2.2  PFA_Subsystem_Disk_Space_Requirements

                    The PFA subsystem occupies about 10 Mbytes of
                    disk space.

                    2.3  Installation_Method

                    All of the subsystems for PFA can be installed
                    using IRIX.  You do not need to use the
                    miniroot.  Refer to the IRIS Software
                    Installation Guide for complete installation
                    instructions.

                    The procedure for installing the CROSS64
                    development option (to be installed from the 6.0
                    IDO CD-ROM onto a machine running 5.2 IRIX) is
                    specialized.  For the details of this procedure,
                    consult the 6.0 IRIX Development Option release
                    notes.  For information about using the CROSS64











                                               - 4 -



                    development option, see the release notes for
                    the 6.0 Baae Compiler Development Option.

                    2.4  Prerequisites

                    To use PFA 6.0 you must be running version 6.0
                    of the MIPSPro Fortran77 compiler, and IRIX
                    release 6.0.



















































 



                                               - 1 -




                    6.0 Power Fortran Accelerator

                    Release Notes


























































                                               - 2 -























                    ________________________________________________
                    Contributors:
                    Written by Bron Nelson
                    ________________________________________________
                    c Copyright 1993, Silicon Graphics, Inc. - All rights reserved

                    This document contains proprietary information
                    of Silicon Graphics, Inc.  The contents of this
                    document may not be disclosed to third parties,
                    copied, or duplicated in any form, in whole or
                    in part, without the prior written permission of
                    Silicon Graphics, Inc.

                    Restricted Rights Legend

                    Use, duplication, or disclosure of the technical
                    data contained in this document by the
                    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 52.227-7013, and/or in similar or
                    successor clauses in the FAR, or the DOD or NASA
                    FAR Supplement.  Unpublished rights reserved
                    under the Copyright Laws of the United States.
                    Contractor/manufacturer is Silicon Graphics,
                    Inc., 2011 N. Shoreline Blvd., Mountain View, CA
                    94039-7311.

                    6.0 Power Fortran Accelerator Release Notes
                    Document Number 007-1669-010

                    Silicon Graphics, Inc.










                                               - 3 -



                    Mountain View, California

                    Silicon Graphics and IRIS are registered
                    trademarks and POWER Fortran Accelerator, POWER
                    Series, Personal IRIS, IRIS Crimson, IRIS
                    Indigo, and IRIX are trademarks of Silicon
                    Graphics, Inc.  VMS is a trademark of Digital
                    Equipment Corporation.


                    3.  New_Features_for_This_Release

                    This chapter covers the changes and additions to
                    the Power Fortran Accelerator (PFA) since the
                    3.10 release (IRIX 4.0.5 system release).  Other
                    changes of interest to PFA users are documented
                    in the 4.0.1 Fortran 77 Release Notes.

                       o The syntax for the -save option has
                         changed.  See the man page for details.

                       o CASEVision/WorkShop Pro MPF is a new
                         programming tool integrated with WorkShop
                         2.0.  It helps you to understand the
                         structure and parallelization of your
                         FORTRAN program.  It consists of a new
                         program, the Parallel Analyzer View, cvpav,
                         which reads analysis files generated by
                         version 4.0 (or greater) of PFA, and
                         displays information about the loops in the
                         files in a window.  The analysis file
                         contains the information currently shown on
                         PFA's listing file, and some additional,
                         more detailed, information.  The Parallel
                         Analyzer View presents that information in
                         a more comprehensible form with a graphical
                         user interface.  This information is
                         contained in a file with the extension
                         ".anl" which is generated when the "pfa
                         keep" option is used.

                         The Parallel Analyzer View allows
                         examination of a program's loops in
                         conjunction with a performance experiment
                         on a run compiled for a uniprocessor.  (The
                         data for parallelized loops in a run
                         compiled for a multiprocessor can not be
                         properly retrieved at this time.)  When run
                         in this mode, the source displays will be
                         annotated with line-level performance data,
                         and the list of loops may be sorted in











                                               - 4 -



                         order of performance cost, so that your
                         attention may be focused on the important
                         loops.

                       o It is now legal to have a symbolic
                         PARAMETER name in the SHARE clause of a
                         DOACROSS directive.  Previously, only
                         variable names were allowed.



















































 



                                               - 1 -




                    6.0 Power Fortran Accelerator

                    Release Notes


























































                                               - 2 -























                    ________________________________________________
                    Contributors:
                    Written by Bron Nelson
                    ________________________________________________
                    c Copyright 1993, Silicon Graphics, Inc. - All rights reserved

                    This document contains proprietary information
                    of Silicon Graphics, Inc.  The contents of this
                    document may not be disclosed to third parties,
                    copied, or duplicated in any form, in whole or
                    in part, without the prior written permission of
                    Silicon Graphics, Inc.

                    Restricted Rights Legend

                    Use, duplication, or disclosure of the technical
                    data contained in this document by the
                    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 52.227-7013, and/or in similar or
                    successor clauses in the FAR, or the DOD or NASA
                    FAR Supplement.  Unpublished rights reserved
                    under the Copyright Laws of the United States.
                    Contractor/manufacturer is Silicon Graphics,
                    Inc., 2011 N. Shoreline Blvd., Mountain View, CA
                    94039-7311.

                    6.0 Power Fortran Accelerator Release Notes
                    Document Number 007-1669-010

                    Silicon Graphics, Inc.










                                               - 3 -



                    Mountain View, California

                    Silicon Graphics and IRIS are registered
                    trademarks and POWER Fortran Accelerator, POWER
                    Series, Personal IRIS, IRIS Crimson, IRIS
                    Indigo, and IRIX are trademarks of Silicon
                    Graphics, Inc.  VMS is a trademark of Digital
                    Equipment Corporation.


                    4.  Known_Problems_and_Workarounds

                    This chapter describes known problems with the
                    current release of PFA and how to work around
                    them.

                       o This release is a transitional release,
                         moving from the old scheme of having PFA as
                         a separate pass, and moving towards having
                         PFA be fully integrated with the Fortran
                         front end.  In this initial release, 32bit
                         compilations use the old method, while
                         64bit compilations use the new method.  As
                         a result, there are numerous minor
                         differences.  In particular, a number of
                         bug fixes have only been applied to the
                         newer version, and not retro-fitted to the
                         old.

                       o The 64-bit loader uses a different syntax
                         for the option to make each thread in an MP
                         program have its own copy of a common
                         block.  In the 32-bit loader, the option is
                         -Xlocaldata common_name_ while the 64-bit
                         loader uses -Wl,-Xlocal,common_name_.
                         Also, the 32-bit loader allows list of
                         common_names with the one -Xlocaldata
                         option, while the 64-bit loader allows only
                         one name per -Xlocal option (but does allow
                         multiple -Xlocal options).

                       o Currently, the 64bit version of PFA
                         generates incorrect code if any of the
                         variables in a DO statement (i.e. the loop
                         index, the base, the bound, or the stride)
                         are of type integer*8.  Such variables
                         should be declared to be integer*4.  The
                         effect of this bug is mitigated somewhat by
                         the related bug that arrays may not contain
                         more than 2**31 elements (see the Fortran
                         release notes) and so an integer*4 index











                                               - 4 -



                         should be sufficient.

                       o Source lines with a leading "tab" character
                         are supposed to be allowed to be of any
                         length (VMS extension).  However, PFA
                         enforces the line length limit (default =
                         72) even on lines with leading tabs.  To
                         work around this problem, use the
                         -extend_source or -col120 option to f77.
                         This bug is fixed in the 64bit version.

                       o There were considerable changes to the
                         syntax used to do procedure inlining.  Most
                         of the old command line syntax is still
                         supported.  In particular, the syntax
                         -create -lib=foo still works.  However, PFA
                         no longer accepts the reverse ordering
                         (that is, -lib=foo -create is no longer
                         accepted).  The 64bit version no longer
                         accepts any of the old inlining syntax.

                       o Occasionally, the Fortran compiler gives
                         the warning assignment to static scalar:
                         xxx in multi processed region.  For PFA-
                         generated code, you can ignore this warning
                         safely.  It is caused when PFA performs
                         scalar optimizations making a particular
                         variable extraneous, but then fails to
                         delete all assignments to that (now
                         useless) variable.  The Fortran compiler
                         becomes suspicious, and so it gives a
                         warning.  Although the code is less than
                         perfect, this useless assignment wastes
                         only a little bit of time and does not
                         affect the correctness of the code.

                       o The line numbering directives used for
                         debugging are frequently off by one line.

                       o Syntax errors from an included file are
                         reported using the name of the original
                         file, not the name of the included file.
                         However, the line number used in the error
                         message is relative to the beginning of the
                         included file, not the original file.  This
                         is fixed in the 64bit version.

                       o PFA becomes confused if there are line
                         number directives embedded inside a single
                         continued line.  This can occur if cpp is
                         used to include the continuation part of a











                                               - 5 -



                         line.  For example:

                                    a(i) = b(i) +
                              #include "more.h"
                                   x    d(i)

                         where the file more.h contains

                                  x    c(i) +

                         Here, the source file (and line numbers)
                         change while in the middle of processing a
                         single Fortran statement.

                         To compile something of this nature, use a
                         two-step process:

                           1.  Use the -P option to f77 to run cpp
                               on the source without producing the
                               line numbering directives.

                           2.  Run f77 on the generated .i file.
                               For example:

                              f77 -P foo.f
                              f77 -c -pfa keep foo.i

                       o The limit on the length of a source line is
                         enforced for line number directives, even
                         though it should not be.  If you have very
                         long file names (or include files with very
                         long path names) PFA gives a bogus error
                         message.  Typically this (bogus) message
                         is:

                              illegal characters in an octal constant

                         To work around this problem, use the
                         -extend_source or -col120 option to f77.
                         This is fixed in the 64bit version.

                       o If a routine uses Fortran style INCLUDEs,
                         and the first line of the file begins with
                         C$, and the file is compiled with -nocpp,
                         and the -I command line option is used,
                         then fcom will be unable to locate the
                         files to be included.  This problem only
                         affects the 32bit version of PFA.

                       o PFA tends to ``leak'' memory.  The size of
                         its swap image grows during the course of a











                                               - 6 -



                         single compile.  When compiling a single
                         file of 15 to 20 thousand lines or more,
                         PFA's swap image might exceed the default
                         size of the swap partition.  However, PFA
                         generally remains well-behaved with respect
                         to virtual memory paging even in this case.

                         To work around the problem, either break
                         the single large file into two or more
                         smaller files, or compile on a system that
                         has a large swap partition.

                       o There is no direct analogue to the fcom
                         -backslash option for the 32bit PFA.  The
                         best you can do is use the -syntax=a
                         option, if that is possible for your
                         application.

                       o If a variable used for a REDUCTION also
                         appears on the left hand side of an
                         assignment statement after the
                         corresponding DOACROSS, the 32bit Fortran
                         compiler will occasionally wrongly complain
                         about an illegal assignment to the
                         reduction variable.  This can be worked
                         around by introducing a new temporary
                         variable to do the reduction within the
                         loop, and then assigning this temporary
                         back to the original variable.






























 



                                               - 1 -




                    6.0 Power Fortran Accelerator

                    Release Notes


























































                                               - 2 -



                    Document Number 007-1669-010




















                    ________________________________________________
                    Contributors:
                    Written by Bron Nelson
                    ________________________________________________
                    c Copyright 1993, Silicon Graphics, Inc. - All rights reserved

                    This document contains proprietary information
                    of Silicon Graphics, Inc.  The contents of this
                    document may not be disclosed to third parties,
                    copied, or duplicated in any form, in whole or
                    in part, without the prior written permission of
                    Silicon Graphics, Inc.

                    Restricted Rights Legend

                    Use, duplication, or disclosure of the technical
                    data contained in this document by the
                    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 52.227-7013, and/or in similar or
                    successor clauses in the FAR, or the DOD or NASA
                    FAR Supplement.  Unpublished rights reserved
                    under the Copyright Laws of the United States.
                    Contractor/manufacturer is Silicon Graphics,
                    Inc., 2011 N. Shoreline Blvd., Mountain View, CA
                    94039-7311.

                    6.0 Power Fortran Accelerator Release Notes
                    Document Number 007-1669-010











                                               - 3 -



                    Silicon Graphics, Inc.
                    Mountain View, California

                    Silicon Graphics and IRIS are registered
                    trademarks and POWER Fortran Accelerator, POWER
                    Series, Personal IRIS, IRIS Crimson, IRIS
                    Indigo, and IRIX are trademarks of Silicon
                    Graphics, Inc.  VMS is a trademark of Digital
                    Equipment Corporation.


                    1.  Dynamic_Shared_Objects

                    A Dynamic Shared Object, or DSO, is an ELF
                    format object file, very similar in structure to
                    an executable program but with no "main".  It
                    has a shared component, consisting of shared
                    text and read-only data; a private component,
                    consisting of data and the GOT (Global Offset
                    Table); several sections that hold information
                    necessary to load and link the object; and a
                    liblist, the list of other shared objects
                    referenced by this object. Most of the libraries
                    supplied by SGI are available as dynamic shared
                    objects.

                    A DSO is relocatable at runtime; it can be
                    loaded at any virtual address.  A consequence of
                    this is that all references to external symbols
                    must be resolved at runtime.  References from
                    the private region (.e.g. from private data) are
                    resolved once at load-time; references from the
                    shared region (e.g. from shared text) must go
                    through an indirection table (GOT) and hence
                    have a small performance penalty associated with
                    them.

                    Code compiled for use in a shared object is
                    referred to as Position Independent Code (PIC),
                    whereas non-PIC is usually referred to as non-
                    shared.  Non-shared code and PIC cannot be mixed
                    in the same object.

                    At Runtime, exec loads the main program and then
                    loads rld, the runtime linking loader, which
                    finishes the exec operation.  Starting with
                    main's liblist, rld loads each shared object on
                    the list, reads that object's liblist, and
                    repeats the operation until all shared objects
                    have been loaded.  Next, rld allocates common
                    and fixes up symbolic references in each loaded











                                               - 4 -



                    object.  (This is necessary because we don't
                    know until runtime where the object will be
                    loaded.)  Next, each object's init code is
                    executed.  Finally, control is transferred to
                    "__start".

                    For a more complete discussion of DSOs,
                    including answers to questions frequently asked
                    about them, see the dso(5) man page.