Aniruddha,

Thanks for the detailed report.  I've reproduced the first problem here. 
We'll debug it and get back
to you.  In the meantime, since you're on an SMP, you can turn off 
BadPlaceExceptions by using the
-BAD_PLACE_RUNTIME_CHECK=false option.

The second problem is a bug, but only because the code to throw the 
appropriate kind of exception
never got written, so an assertion is tripped instead.
        Igor

"Shet, Aniruddha G." wrote on 04/03/2007 11:20:10 PM:

> Hi Igor,
> 
> In the foll piece of code, the activity at place 0 is trying to update a
> locally allocated reference array with a block from a distributed value
> array:-
> 
> public class test {
>         final region R = [1:20, 1:20];
>         final dist D = dist.factory.block(R);
>         final double value [.] a = new double value [D] (point [i,j])
> {return i+j;};
> 
>         public void run() {
>                 async(here) {
>                         double [.] b = new double [ [15:19, 1:5] ];
>                         final dist subD = D | [15:19, 1:5];
>                         b.update(a | subD);
>                 }
>         }
> 
>         public static void main(String[] args) {
>                 new test().run();
>         }
> }
> 
> This code throws the foll error when run with 4 places:-
> 
> Exception in thread "pool-0-thread-0: Main Activity"
> BadPlaceException(dist. array, var location=place(id=2) access at
> place=place(id=0))
>         at x10.lang.Runtime.hereCheckPlace(Runtime.java:313)
>         at x10.array.DoubleArray.get(DoubleArray.java:103)
>         at x10.array.DoubleArray.get(DoubleArray.java:100)
>         at x10.array.DoubleArray.update(DoubleArray.java:389)
>         at test$2.runX10Task(test.java:133)
>         at
> x10.runtime.InvocationStrategy$DefaultStrategy.invokeX10Task(InvocationS
> trategy.java:57)
>         at x10.runtime.Activity.run(Activity.java:192)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
> r.java:665)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
> va:690)
>         at java.lang.Thread.run(Thread.java:799)
> 
> 
> 
> I would like some more clarifications here --
> 
> -- If I were to def b as "double [.] b = new double [ [1:5, 1:5] ]" and
> leave subD unchanged, then I get the error:-
> 
> Exception in thread "pool-0-thread-0: Main Activity"
> java.lang.AssertionError
>         at x10.array.DoubleArray.update(DoubleArray.java:382)
>         at test$2.runX10Task(test.java:133)
>         at
> x10.runtime.InvocationStrategy$DefaultStrategy.invokeX10Task(InvocationS
> trategy.java:57)
>         at x10.runtime.Activity.run(Activity.java:192)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
> r.java:665)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
> va:690)
>         at java.lang.Thread.run(Thread.java:799)
> 
> b here has the same shape and size as before, but a different index set.
> I feel that such a capability is desirable.
> 
> -- Correct me if I am wrong in saying that if two arrays have identical
> regions but different distributions, then assignment/update/overlay
> operations should run correctly so long as the locality rule is not
> violated.
> 
> Thanks,
> Aniruddha 
> -----------------------------------------------------------
> Aniruddha G. Shet                 |Email: [EMAIL PROTECTED]
> Oak Ridge National Laboratory     |Phone: +1 (865) 576 5606
> http://www.csm.ornl.gov/~anish12/ |Fax:   +1 (865) 576 5491
> ----------------------------------------------------------- 
> 
> -----Original Message-----
> From: Igor Peshansky 
> Sent: Tuesday, April 03, 2007 9:41 PM
> To: Shet, Aniruddha G.
> Cc: x10-users<at>lists.sourceforge.net
> Subject: Re: [X10-users] Array assignment & update/overlay
> 
> Shet, Aniruddha G. wrote on 04/03/2007 09:25:03 PM:
> 
> > Hi,
> > 
> > My understanding is that array assignment and update/overlay 
> > operations are not designed to operate on arrays that do not having 
> > matching distributions, even though they may have matching regions?
> > 
> > I am seeing that an activity that tries to update a local reference 
> > type array with a subdistribution of a global array that is final 
> > value type fails with BadPlaceException. The local array and the 
> > subdistribution have identical regions. The locality rule is not being
> 
> > violated here. Is the mismatch of distributions the reason for
> failure?
> 
> Hi, Aniruddha,
> 
> This behavior sounds like a bug.  The way you described it, it certainly
> does not correspond to the X10 language definition.
> 
> It would help greatly in debugging this problem if you could reduce it
> to a simple (and preferably short) test case.  Feel free to post it to
> the list or enter it in Bugzilla.  It would also help if you could show
> the full stack trace of the BadPlaceException you're getting.
>         Igor
-- 
Igor Peshansky  (note the spelling change!)
IBM T.J. Watson Research Center
XJ: No More Pain for XML's Gain (http://www.research.ibm.com/xj/)
X10: Parallel Productivity and Performance (http://x10.sf.net/)

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
X10-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to