Many thanks, Kevin! Sorry if this question's come up before. I read through 
the distributed array section, but didn't know where else to look. Perhaps 
an example there would help.

Cheers!

On Saturday, March 7, 2015 at 10:03:00 AM UTC-5, Kevin Squire wrote:
>
> Hi Dominique,
>
> You could do this:
>
> julia> d = dones(10)
> 10-element DistributedArrays.DArray{Float64,1,Array{Float64,1}}:
>  1.0
>  1.0
>  1.0
>  1.0
>  1.0
>  1.0
>  1.0
>  1.0
>  1.0
>  1.0
>
> julia> @spawnat 2 begin
>        d_loc = localpart(d)
>        d_loc[:] += 2
>        end
> RemoteRef(2,1,52)
>
> julia> d
> 10-element DistributedArrays.DArray{Float64,1,Array{Float64,1}}:
>  3.0
>  3.0
>  3.0
>  3.0
>  3.0
>  1.0
>  1.0
>  1.0
>  1.0
>  1.0
>
> This type of question has come up often enough that it should probably be 
> an FAQ (and the documentation of [:] and += expanded).
>
> Cheers!
>    Kevin
>
> On Sat, Mar 7, 2015 at 12:47 AM, Dominique Orban <[email protected] 
> <javascript:>> wrote:
>
>> I'd like to modify the chunks of a distributed array in parallel. The 
>> following bit of code does not modify the distributed array d:
>>
>> julia> d = dones(10);
>> julia>@spawnat 2 begin
>>        d_loc = localpart(d);
>>        d_loc = d_loc + 2;
>>        end
>>
>> This one does:
>>
>> julia> @spawnat 2 begin
>>        d_loc = localpart(d);
>>        for i = 1 : size(d_loc, 1)
>>        d_loc[i] = d_loc[i] + 2;
>>        end
>>        end
>>
>> Is there a more convenient syntax that I missed?
>>
>> Thanks.
>>
>
>

Reply via email to