From owner-hpff-interpret  Sat Aug  3 23:14:45 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id XAA22506 for hpff-interpret-out; Sat, 3 Aug 1996 23:14:45 -0500 (CDT)
Received: from mail.think.com (Mail1.Think.COM [131.239.33.245]) by cs.rice.edu (8.7.1/8.7.1) with ESMTP id XAA22501 for <hpff-interpret@cs.rice.edu>; Sat, 3 Aug 1996 23:14:41 -0500 (CDT)
From: munroe@think.com
Received: from gandalf.think.com (Gandalf.Think.COM [131.239.146.104])
    by mail.think.com (8.7.5/m3) with SMTP id AAA03820;
    Sun, 4 Aug 1996 00:14:39 -0400 (EDT)
Received: by gandalf.think.com (4.1/Think-1.3)
	id AA12508; Sun, 4 Aug 96 00:14:38 EDT
Date: Sun, 4 Aug 96 00:14:38 EDT
Message-Id: <9608040414.AA12508@gandalf.think.com>
To: hpff-interpret@cs.rice.edu
Cc: munroe@think.com, eugene@think.com
Subject: hpff-interpret: Forwarded questions on the HPF_LOCAL_LIBRARY]
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.
---------------------------------------------------------------------------


A colleague of mine is looking at HPF_LOCAL_LIBRARY routine, and raised
the following questions about two of the routines:

a) What should PHYSICAL_TO_ABSTRACT do if the PROC argument describes a
processor that is not in the processor grid?  (It may still be a legal
processor number if the processor grid spans only a subset of all
processors.)

b) What should LOCAL_TO_GLOBAL return if it is called on a processor that
does not have any subgrid elements of the global array in question?

c) Also, is this processor grid that of the array or of the template to
which it is ultimately aligned?









---------------------------------------------------------------------------
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  Mon Aug 26 15:56:16 1996
Received: (from daemon@localhost) by cs.rice.edu (8.7.1/8.7.1) id PAA15407 for hpff-interpret-out; Mon, 26 Aug 1996 15:56:16 -0500 (CDT)
Received: from cupid.cs.utk.edu (CUPID.CS.UTK.EDU [128.169.94.221]) by cs.rice.edu (8.7.1/8.7.1) with SMTP id PAA15402 for <hpff-interpret@cs.rice.edu>; Mon, 26 Aug 1996 15:56:12 -0500 (CDT)
From: rwhaley@cs.utk.edu
Received:  by cupid.cs.utk.edu (cf v2.11c-UTK)
          id QAA20164; Mon, 26 Aug 1996 16:56:04 -0400
Date: Mon, 26 Aug 1996 16:56:04 -0400
Message-Id: <199608262056.QAA20164@cupid.cs.utk.edu>
To: hpff-interpret@cs.rice.edu
Subject: hpff-interpret: ALIGN question
Cc: ellis@cs.utk.edu, rwhaley@cs.utk.edu, susan@cs.utk.edu
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.
---------------------------------------------------------------------------

Hi,

Assume you have the following setup:

REAL    :: A(4,4)
INTEGER :: IPIV(4)
!HPF$ PROCESSORS PROC(1,2)
!HPF$ DISTRIBUTE A(CYCLIC(4), CYCLIC(4)) ONTO PROC
!HPF$ ALIGN IPIV(:) WITH A(:,*)

Should IPIV exist on both processes, or only the one where A is found?
I ask because of a difficulty I've had with this precise problem.  I am
writing code in a local extrinsic, and I need the IPIV vector to be
correctly replicated when I am done (maintaining the alignment the global
code handed to me).

Now, to figure out what processors are participating in a given process grid,
I loop over calls to GLOBAL_TO_LOCAL on A.  If a process does not own a piece
of A (as above), there is no general way for me to tell how to replicate
IPIV (in the above simple example, it is easy enough to determine, but this
is not true of more advanced 2D grids . . .).

Since the replication is tied to a matrix, it seems to me that IPIV should
need to be updated and exist only on processors where A exists.  This does
not seem to be the case on the compiler I am using at the moment, however.

A related question is what should SIZE() return on the process owning no
piece of A.  I would think that SIZE(A,1) = SIZE(A,2) = SIZE(A) = 0 should
be the answer, but on the compiler I am using I get SIZE(A,1) = 4, 
SIZE(A,2) = SIZE(A) = 0 . . .

Thanks,
Clint
---------------------------------------------------------------------------
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>
---------------------------------------------------------------------------

