Hi.

I was playing with SharedArrays and parallel lopps and the following 
happened
(Julia 0.4.6, windows official build)

addprocs(4)

julia> A =SharedArray(Float64,5)
5-element SharedArray{Float64,1}:
 0.0
 0.0
 0.0
 0.0
 0.0

julia> @sync @parallel for i=1:1000
                      for j=1:5
                           A[j] += 1
                      end 
          end 

4-element Array{Any,1}:
 RemoteRef{Channel{Any}}(2,1,105)
 RemoteRef{Channel{Any}}(3,1,106)
 RemoteRef{Channel{Any}}(4,1,107)
 RemoteRef{Channel{Any}}(5,1,108)

julia> A
5-element SharedArray{Float64,1}:
 857.0
 866.0
 869.0
 866.0
 866.0

julia> A =SharedArray(Float64,5)
5-element SharedArray{Float64,1}:
 0.0
 0.0
 0.0
 0.0
 0.0

julia> @sync @parallel for i=1:1000
                     for j=1:5
                           A[j] += 1
                     end 
          end  
  
4-element Array{Any,1}:
 RemoteRef{Channel{Any}}(2,1,89)
 RemoteRef{Channel{Any}}(3,1,90)
 RemoteRef{Channel{Any}}(4,1,91)
 RemoteRef{Channel{Any}}(5,1,92)

julia> A
5-element SharedArray{Float64,1}:
 1000.0
 1000.0
 1000.0
 1000.0
 1000.0

Why the results are different ? I would expect 1000 everytime. Am I doing  
something so silly that I cannot 
see in this such simple example ?


Thanks.

Reply via email to