Right, but that's where you can return a remoteref wrapper instead of the entire array (or perhaps spawnat does this already? I don't recall exactly)
On Wednesday, May 28, 2014, Stefan Karpinski <[email protected]> wrote: > I suspect that global variable is what Eka is after here. If you put > "global" in front of the definition of d, it will work. I would advise > against using globals, however. It's much better to return the array and > pass it to the other function as an argument. > > On May 28, 2014, at 5:24 PM, Jameson Nash > <[email protected]<javascript:_e(%7B%7D,'cvml','[email protected]');>> > wrote: > > A RemoteRef lets up pass around a variable without actually moving the > data (until you fetch) > > On Wednesday, May 28, 2014, Eka Palamadai > <[email protected]<javascript:_e(%7B%7D,'cvml','[email protected]');>> > wrote: > >> Is it possible to persist a variable across function calls? >> >> Consider 2 functions foo and bar shown below : >> ----------------------------- >> function foo() >> d = zeros(5) >> for i = 1:5 >> d [i] = i >> end >> end >> >> function bar() >> println ("d", d) >> end >> >> function test_parallel() >> @spawnat 2 foo() >> @spawnat 2 bar() >> end >> ----------------------------- >> The code doesn't compile since d is not defined in function bar. >> >> foo defines array d but bar needs to use d as well. >> >> How could both foo and bar use d without passing d around? >> >> I could pass d back and forth, but i would like to avoid the >> communication overhead. >> Any ideas? >> >> Thanks. >> >> >> >>
