From owner-hpff-interpret  Wed Aug 30 13:53:50 1995
Received: by cs.rice.edu (NAA19367); Wed, 30 Aug 1995 13:53:50 -0500
Received: from [128.42.1.213] by cs.rice.edu (NAA19314); Wed, 30 Aug 1995 13:53:37 -0500
Date: Wed, 30 Aug 1995 13:53:37 -0500
X-Sender: chk@titan.cs.rice.edu
Message-Id: <v0153051dac6a1bb2837a@[128.42.1.213]>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
To: hpff-interpret
From: chk@cs.rice.edu (Chuck Koelbel)
Subject: hpff-interpret: Welcome to hpff-interpret!
Sender: owner-hpff-interpret
Precedence: bulk

---------------------------------------------------------------------------
hpff-interpret@cs.rice.edu is a mailing list for corrections,
clarifications, and interpretations related to High Performance Fortran.
Instructions for adding or deleting yourself from this list appear at the
bottom of this message.
---------------------------------------------------------------------------

If you receive this message, then you are on the hpff-interpret mailing
list (or somebody has forwarded it to you).

The main topics for discussion on this list are
        Questions about the meaning of the HPF specification
        Questions about the intended implementation of HPF
        Replies to these questions
          (Note that I didn't say "answers"! :-)



---------------------------------------------------------------------------
To (un)subscribe to this list, send mail to
hpff-interpret-request@cs.rice.edu.
Leave the subject line blank, and in the body put the line
(un)subscribe <email-address>
---------------------------------------------------------------------------

From owner-hpff-interpret  Thu Aug 31 15:25:06 1995
Received: by cs.rice.edu (PAA00650); Thu, 31 Aug 1995 15:25:06 -0500
Received: from VNET.IBM.COM by cs.rice.edu (PAA00640); Thu, 31 Aug 1995 15:24:59 -0500
Received: from TOROLAB by VNET.IBM.COM (IBM VM SMTP V2R3) with BSMTP id 9835;
   Thu, 31 Aug 95 16:24:48 EDT
Received: by TOROLAB (XAGENTA 4.0) id 2884; Thu, 31 Aug 1995 16:27:25 -0400 
Received: by twinpeaks.torolab.ibm.com (AIX 3.2/UCB 5.64/4.03)
          id AA34877; Thu, 31 Aug 1995 16:24:49 -0400
From: <zongaro@vnet.ibm.com> (Henry Zongaro)
Message-Id: <9508312024.AA34877@twinpeaks.torolab.ibm.com>
Subject: hpff-interpret: A couple of questions
To: hpff-interpret@cs.rice.edu (HPPF Interpretations)
Date: Thu, 31 Aug 1995 16:24:47 -0400 (EDT)
X-Mailer: ELM [version 2.4 PL24alpha3]
Content-Type: text
Content-Length: 2069
Sender: owner-hpff-interpret
Precedence: bulk

---------------------------------------------------------------------------
hpff-interpret@cs.rice.edu is a mailing list for corrections,
clarifications, and interpretations related to High Performance Fortran.
Instructions for adding or deleting yourself from this list appear at the
bottom of this message.
---------------------------------------------------------------------------

Hello,

     Page 41, lines 21-34 of the HPF 1.1 document specifies that an array or
template must not be distributed on a processor arrangement at the time the
arrangement becomes undefined, unless the array or template also becomes
undefined or the processor arrangement always has identical bounds.

     Presumably this was done so that objects with the SAVE attribute would
not change mappings from one call to the next.  Is this rule sufficiently
strict?  Consider the following:

        program p
          call sub(5)
          call sub(10)
        end program p

        subroutine sub(n)
          integer, save :: a(10)
!hpf$     processors proc(2)
!hpf$     distribute a(block(n)) onto proc
        end subroutine sub

     In the first call to sub, a is distributed block(5); in the second call,
it is distributed block(10).  This is currently permitted because the bounds of
the processor arrangement have not changed.

     More complicated examples could be drawn involving ALIGN.

     Similar text appears on page 44, line 43 - page 45, line 3 for templates.


     A second question I have relates to CCI item #20.  The HPF_LOCAL_LIBRARY
procedures all specify that the ARRAY argument must be a local dummy argument
associated with a global HPF actual argument.  It would seem to me to be
desirable to be able to call these routines with a function result as well.
For example,

        program p
          interface
            extrinsic(hpf_local) function f()
              integer :: f(100)
!hpf$         processors proc(number_of_processors())
!hpf$         distribute f(block) onto proc
            end function f
          end interface
        end program p

        extrinsic(hpf_local) function f()
          integer :: f(100/number_of_processors()), g_index

          ! Would be nice to be able to call local_to_global to determine
          ! which elements of local result correspond to which elements
          ! of global result
          call local_to_global(f, (/1/), l_index)
        end function f

Any opinions?

Thanks,

Henry
---------------------------------------------------------------------------
To (un)subscribe to this list, send mail to
hpff-interpret-request@cs.rice.edu.
Leave the subject line blank, and in the body put the line
(un)subscribe <email-address>
---------------------------------------------------------------------------

