Subject: HPF programming problem..

From: [email-masked] (Stanly Steinberg)
Date: Fri, 7 May 93 10:31:25 MDT

To: HPF Comments
	[email-masked]
Fr: Stanly Steinberg, [email-masked]
Re: How is this done?
Da: 5/7/93

I have just read over lightly the HPF Language Specification
draft dated No. 6, 1992, V 0.4

I have a problem where I am given six array and need to compute 23 new arrays.

the computations, in the simplest case all look like

B1(i,j,k) = (Ax(i+1,j,k)+Ay(i,j+1,k))/2

The + signs are replaced by - signs in all combinations and all combinations
of incremented indices are used, and x,y range over 1-6 with x!= y.

It appears that such a computation, written in F90, will run optimally slow
on all parallel machines.

An obvious strategy is to break each array into the same number of blocks
as there are processor and then allocate the related blocks to the same
processor. In addition, each processor needs to have the first layer of
points of its neighboring blocks on it. Thus there is some modest
data duplication, but now the arithmetic can be done with out communication.
However, simple array adds may muck up the arithmetic.

Can this be done in HPF in some elementary way?