Igor, In the code that I sent, if b were declared as
final double value [.] b = a | subD; can I expect a local copy to be created or is b treated only as a reference to a section of a? I see that a BadPlaceException is thrown when I try to access an element in b, which indicates that no local copy is created. Thanks, Aniruddha -----Original Message----- From: Igor Peshansky [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 04, 2007 1:13 AM To: Shet, Aniruddha G. Cc: [email protected] Subject: RE: [X10-users] Array assignment & update/overlay 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(Invocatio > nS > trategy.java:57) > at x10.runtime.Activity.run(Activity.java:192) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecu > to > 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(Invocatio > nS > trategy.java:57) > at x10.runtime.Activity.run(Activity.java:192) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecu > to > 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
