Subject: Re: about shift

From: Zheng Gengbin <[email-masked]>
Date: Sun, 21 Dec 1997 16:58:26 +0800 (EAT)

Hi,

> BTW, I guess you realize you have created `A' with ghost regions, although
> you aren't using them here.  It will work, but it looks odd.
>

	Yes, in fact I changed the remap to shift manually in this exmaple.
After dect_communication, the communication pattern is set to SHIFT, which 
generated ghost regions, but after data dependence checking, the loop 
turn out to contain some data flow dependence, so writeHalo cannot do the 
right thing and the shift is changed to remap. That is why I didn't use 
writeHalo ,but pcrc_shift.  pcrc_shift will communicated in temporary stack.

	This time pcrc_tshift is right. But I don't know if pcrc_tshift is
faster than pcrc_remap enough so I should use pcrc_tshift rather than 
pcrc_remap if flow data dependence is detected.

>      ---=+ O +=---
> 
> A couple of issues:
> 
> 1) Guansong has been trying to persuade me there should be a debug mode
> for Adlib that adds runtime checks for constraints like alignment
> restrictions on arguments of communication functions.  A mode like that
> would trap errors like this.
> 
> 2) This example illustrates how much cleaner the HPJava interface is than
> the PCRC Fortran interface.  Really something needs to be done about the
> Fortran interface to make it more sane (speaking as the person who mainly
> designed that interface...)
>

   Another interest thing is that if Adlib provide a function that can 
decide if two arrays(DAD) have same data mapping patterns during runtime?
I found it will be very convenient 

   I also encountered a problem when using transformation functions. I think 
these collective functions have inherit collision with our owner-compute 
rule. There is a very simple example(maybe unresonable):

	integer a(1:4),b(1:4)
	forall (i=1:3)
		a(i)=sum(b)

Suppose there are 4 processors(P) and block mapping is assumed to a and b , 
according to owner-compute rule, processors: P(1)-P(3) will enter the do 
loop to compute their holding part of a. But the execution of sum require that 
all processors participate in the computation. This will cause deadlock 
of the node programs. It is also very hard to extract the execution of sum 
out of the do-loop, because the parameters of sum may contain the loop 
variables. 

Ok, so many questions, anyway,
Merry Christmas ! 

               .-~~\
      *   *   /     \ _     *        *
              ~x   .-~_)_       *
    *   *       ~x".-~   ~-.             *
            _   ( /         \   _    *
       *    ||   T  o  o     Y  ||       Here's wishing all of you
   *      ==:l   l   <       !  I;==     the very best of holidays!!!
             \\   \  .__/   /  //
     *        \\ ,r"-,___.-'r.//
          *    }^ \.( )   _.'//.   *
              /    }~Xi--~  //  \         *
       *     Y    Y I\ \    "    Y
             |    | |o\ \        |      *
   *         |    l_l  Y T       |         *
        *    l      "o l_j       !  *
              \                 /
     * ___,.---^.     o       .^---.._____

   "~~~          "           ~            ~~~"

Gengbin
---------------------------------
Dept. of Computer Science and Technology
Peking University

Home page: http://pact0.cs.pku.edu.cn/users/zhenggb
E-mail:    [email-masked]