> > 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