From crabapple.srv.cs.cmu.edu!cantaloupe.srv.cs.cmu.edu!rochester!udel!darwin.sura.net!wupost!rice!chk Fri Mar 20 12:39:35 1992 Article: 10180 of comp.lang.misc From: metzger@bach.convex.com (Robert Metzger) 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 FORAL 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