HPFF Proposals, Jan 27-28 (Houston)

HPFF Proposals, Jan 27-28 (Houston)

Post by Charles Koelb » Sat, 21 Mar 1992 04:47:27



Many thanks to Bob Metzger for writing this up.

                                                Chuck Koelbel


The following table was compiled at a dinner meeting on 1/27/92, the first
day of the High Performance Fortran Forum (HPFF).  Attendees were:
(Convex): Bob Metzger, Joel Williamson, (TMC): Bob Milstein, Guy Steele,
(IBM): Jorge Sanz, (Vienna): Hans Zima, Barbara Chapman, Piyush
Mehrotra[ICASE], (Rice): Chuck Koelbel, and (Auburn) Cherri Pancake.
The point of the meeting was to compare the features of the various HPF
proposals.  We expect this to be a sarting point for the ongoing HPF
meetings.  For those organizations not at this meeting (DEC, Cray) we
attempted to characterize their features from the text of their
proposals.

This table was what we accomplished in 3 hours -- obviously there are
many more features to be addressed.

        Comparison of High-Performance Fortran Features

Key:

Fortran D: As developed at Rice and Syracuse Universities by
                Ken Kennedy, Geoffrey Fox, et al.
      DEC: Digital Equipment Corporation
      CRI: Cray Research, Incorporated
   Vienna: Vienna Fortran, developed by Hans Zima, et al.
      TMC: Thinking Machines Corporation
      DPF: Data Parallel Fortran, developed at International Business
                Machines, Almaden Research Center by Jorge Sanz, et al.

Base Language.

Fortran D: F77 or F90
      DEC: F90 subset
      CRI: cft77
   Vienna: F77 or F90
      TMC: F90 subset
      DPF: F90 subset

Concurrent I/O.

Fortran D: No
      DEC: No
      CRI: SHARED I/O
   Vienna: COPEN, CREAD, CWRITE
      TMC: Call UNIXlib functions
      DPF: No

Reductions.

Fortran D: REDUCE statement
      DEC: F90
      CRI: F90
   Vienna: Similar to Fortran D
      TMC: F90
      DPF: F90

Process Topology.

Fortran D: Implicit Multidimensional
      DEC: Cartesian Numbers
      CRI: Weights on distribution, implicit power of 2
   Vienna: PROCESSORS statement
      TMC: PROCESSORS statement
      DPF: N/A

Processor Intrinsics.

Fortran D: n$proc intrinsic variable
      DEC: NUMBER_OF_PROCESSORS intrinsic function
      CRI: N$PES intrinsic constant; MY$PE intrinsic variable
   Vienna: $NP intrinsic function; $P and $PL intrinsic arrays
      TMC: n$proc intrinsic variable
      DPF: N/A

Parallel Prefix.

Fortran D: No
      DEC: No
      CRI: Yes
   Vienna: No
      TMC: Yes
      DPF: Use FORALL

User-defined Reductions.

Fortran D: Yes
      DEC: No
      CRI: No?
   Vienna: Yes
      TMC: No
      DPF: Yes

Nested WHERE Blocks.

Fortran D: No
      DEC: No
      CRI: No
   Vienna: No
      TMC: Yes
      DPF: No

Redistribute/Realign on procedure boundary.

Fortran D: Yes
      DEC: Yes
      CRI: Yes
   Vienna: Yes
      TMC: Yes
      DPF: Yes

Local execution; reindexed local data.

Fortran D: No
      DEC: No
      CRI: No
   Vienna: No
      TMC: Yes
      DPF: Yes

Message-passing in local execution.

Fortran D: No
      DEC: No
      CRI: No
   Vienna: No
      TMC: Yes
      DPF: Default if variable is not remapped

FORALL.

Fortran D: Block
      DEC: Statement
      CRI: DOSHARED directive on DO loop
   Vienna: FORALL like DOSHARED
      TMC: Block
      DPF: Block

F*Nesting.

Fortran D: Perfect nest
      DEC: No
      CRI: Perfect nest
   Vienna: Perfect nest
      TMC: ?
      DPF: Perfect nest

FORALL Determininism.

Fortran D: Yes
      DEC: Yes
      CRI: ?
   Vienna: Yes
      TMC: Yes
      DPF: Yes

FORALL Semantics.

Fortran D: \
      DEC:  \
      CRI:   \ --> Mutually inconsistent
   Vienna:   /
      TMC:  /
      DPF: /

Declarative ALIGN, DISTRIBUTE.  

Fortran D: No
      DEC: Yes
      CRI: Yes
   Vienna: Yes
      TMC: Yes
      DPF: Yes

Imperative ALIGN, DISTRIBUTE.

Fortran D: Yes
      DEC: No
      CRI: Yes
   Vienna: Yes
      TMC: Yes
      DPF: Yes

User-defined alignment/distribution functions.

Fortran D: Yes
      DEC: No
      CRI: No
   Vienna: Yes
      TMC: No
      DPF: Yes

ALIGN/DISTRIBUTE dependent on information available only at runtime.

Fortran D: Yes
      DEC: No (specification expressions)
      CRI: ?
   Vienna: Yes
      TMC: Yes
      DPF: Yes

Executable functions to inquire on distributions.

Fortran D: No
      DEC: No
      CRI: Yes
   Vienna: Yes
      TMC: No
      DPF: No