> > I'm still looking for an answer to parallelizing a loop with common
> > data for each iteration.
> 
> Sorry, things have been a little hectic and this must have slipped through
> the cracks.
> 
> > It is my understanding that the value vC
> > would be private to each iteration of the ateach loop. This doesn't
> > seem to be the case. Output is below. I'm using version 1.7.7.
> 
> vC is private, but the object it is pointing to is not.
> 
> I believe in 1.7.7 Complex is an object,

I wrote my own class for this.

> so although each iteration has its
> own private pointer to C, they are still pointing to the same object.
> Therefore the updates from one iteration are visible in others because
> there is a single object that is being accessed by all the iterations.
> 
> Does that make sense?

That makes sense, but obviously this is not what I want. Is there a simple way 
in X10 to get a such an object to be privatized among the iterations? This code 
snippet is an example of the code I'm working with. The actual code involves a 
large data structure which needs to be unique to each iteration with no loop 
carried dependences. Sequentially this is no problem. Concurrently, each 
iteration needs a separate copy.

Any help is appreciated.

Jim

> 
> >
> >
> > public class TestVal{
> >    public static def main(args:Rail[String]){
> >       var c: Complex = new Complex();
> >       var reg: Region{rank==1} = [1..8];
> >       var dist: Dist{rank==1} = Dist.make(reg);
> >
> >       val vC = c;
> >       finish ateach((i) in dist)
> >       {
> >          vC.imag = i as Double;
> >          for ( var n: Int = 0; n < 100; n++ );
> >          Console.OUT.println(vC);
> >       }
> >    }
> > }
> >
> >
> > Output: Notice the absence of (0,8) and the replication of (0,2). It
> > seems there is a data race on the vC, but my understanding is that
> > vC would be local to each thread.
> >
> > $ x10 TestVal
> > (0.0, 1.0)
> > (0.0, 7.0)
> > (0.0, 6.0)
> > (0.0, 5.0)
> > (0.0, 4.0)
> > (0.0, 3.0)
> > (0.0, 2.0)
> > (0.0, 2.0)
> >
> >
> > If I am misunderstanding this, can anyone offer a correction? In
> > this example, I want vC to be private (local) to each iteration.
> > I.e., each iteration gets its own copy.
> >
> > Thanks,
> >
> > Jim
> 
> 
> 

------------------------------------------------------------------------------

_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to