[comp.sys.sgi] Parallel Fortran and PFA

cmb@castle.ed.ac.uk (Colin Brough) (12/11/90)

In the IRIS-4D Series FORTRAN 77 Programmer's Guide, section 5. FORTRAN
Enhancements for Multiprocessors, it states:

	"To provide compatibility for existing parallel programs,
	Silicon Graphics has chosen to adopt the syntax for parallelism
	used by Sequent Computer Corporation.  This syntax...."

Unfortunately the compiler directives subsequently described do not
match those described in the Sequent ATS Fortran User's Manual (ATS
Fortran version 1.0).  The SGI version has two extra options to the
DOACROSS directive, but is missing three in the Sequent version.  It
also has three extra directives, but is missing four directives that the
Sequent version supports.  i.e.

Both            Sequent         SGI
------------------------------------------------
C$DOACROSS-
 -SHARE          -LOCKS          -IF
 -LOCAL          -ORDER          -MP_SCHEDTYPE
 -LASTLOCAL      -UNROLL
 -REDUCTION
 -CHUNK
C$              C$LOCK          C$CHUNK
C$&             C$UNLOCK        C$MP_SCHEDTYPE
                C$ORDER         C$COPYIN
                C$ENDORDER

Have Sequent recently changed their syntax (ATS is their latest Fortran
compiler), or have SGI not actually implemented total compatability?

On a related topic, does the PFA parallel processing preprocessor only
produce code with a subset of these parallel processing directives in
it, or does it make use of them all?  In particular, I understand that
Kuck and Associates produce both PFA for SGI and the KAP preprocesor for
Sequent and I was wondering whether both these preprocessors used the
common subset of facilities provided by both SGI and Sequnet Parallel
Fortrans's.

Any information gratefully received.
__________________________________________________________________________
Colin Brough                           Edinburgh Parallel Computing Centre
cmb@castle.ed.ac.uk                    James Clerk Maxwell Building
cmb%ed.ac.uk@nsfnet-relay.ac.uk        Mayfield Road
                                       Edinburgh  EH9 3JZ
Phone: +44 31-650-5022                 SCOTLAND
Fax:   +44 31-662-4712
__________________________________________________________________________

bron@bronze.wpd.sgi.com (Bron Campbell Nelson) (12/18/90)

In article <7542@castle.ed.ac.uk>, cmb@castle.ed.ac.uk (Colin Brough) writes:
> In the IRIS-4D Series FORTRAN 77 Programmer's Guide, section 5. FORTRAN
> Enhancements for Multiprocessors, it states:
> 
> 	"To provide compatibility for existing parallel programs,
> 	Silicon Graphics has chosen to adopt the syntax for parallelism
> 	used by Sequent Computer Corporation.  This syntax...."
> 
> Unfortunately the compiler directives subsequently described do not
> match those described in the Sequent ATS Fortran User's Manual (ATS
> Fortran version 1.0).
[excellent comparison deleted]
> 
> Have Sequent recently changed their syntax (ATS is their latest Fortran
> compiler), or have SGI not actually implemented total compatability?

SGI has not implemented total compatibility.  In our first release, we
only implemented a subset of the capabilities found in the Sequent
compiler, intending to extend this in later releases.  However, we found
that our customers were pulling us in slightly different directions, and
so we worked on other extensions, rather than fully implementing Sequent
compatibilty.  As a result, there is a "core" subset that should be
common on both machines, but neither company fully implements all of the
other's commands.

I would at this point like to publicly acknowledge and thank Gary Fielland
of Sequent Computer Systems, Inc. for giving SGI permission to use the
Sequent parallel command syntax in our compiler.  Thanks, Gary.

> 
> On a related topic, does the PFA parallel processing preprocessor only
> produce code with a subset of these parallel processing directives in
> it, or does it make use of them all?  In particular, I understand that
> Kuck and Associates produce both PFA for SGI and the KAP preprocesor for
> Sequent and I was wondering whether both these preprocessors used the
> common subset of facilities provided by both SGI and Sequnet Parallel
> Fortrans's.

Kuck&Associates does produce KAP/PFA.  I believe it is the case that
the only commands that PFA will generate that are *not* in the Sequent
compatible subset are (1) the IF clause, and (2) allowing array variables
to be LASTLOCAL.  You can prevent (1) by setting the command line switch
"-minconc=0", and can prevent (2) by leaving the optimization level at 4
(i.e. "-o=4" is the default for PFA; LASTLOCAL arrays will only happen at
"-o=5").  If you do this, then the results of a PFA run should be
compatible/compilable with Sequent Fortran.  I do not have a Sequent
machine to test this out on however, so I cannot guarentee success, but it
should work (if it doesn't, let me know).

As for the KAP/Sequent product: I suspect that if you set "-cthreshold=-100"
and "-unroll=1" you will get KAP/Sequent to produce the SGI compatible subset,
but again I don't have a Sequent machine, so I can't guarentee this.

--
Bron Campbell Nelson
bron@sgi.com  or possibly  ..!ames!sgi!bron
These statements are my own, not those of Silicon Graphics.