Subject: hpff-interpret: ALIGN question

From: [email-masked]
Date: Mon, 26 Aug 1996 16:56:04 -0400

---------------------------------------------------------------------------
[email-masked] 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
[email-masked].
Leave the subject line blank, and in the body put the line
(un)subscribe <email-address>
---------------------------------------------------------------------------