Can you update Julia to the current 0.4.5? Your version is year old. (I keep asking the same question over and over.)
On Wed, Apr 27, 2016 at 6:56 PM, Michael Wojnowicz <mwojn...@uci.edu> wrote: > > Here's some behavior using Julia's parallel processing that really > surprised me. I'm not sure if this behavior is a bug (in which case I > should report it), or if I'm just missing something. Really stupid but > minimal example: > > This code fails: > @everywhere function doit(vec::Array{Int64,1}) > AccumulateVectorEntries=SharedArray(Int64,1,1) > pmap(enumerate(vec)) do index_pair #note: this works in parallel > (i,entry) = index_pair > AccumulateVectorEntries+=entry > end > return sdata(AccumulateVectorEntries) > end > > result=doit([1,2,3,4,5]) > > This code works as intended: > @everywhere function doit(vec::Array{Int64,1}) > AccumulateVectorEntries=SharedArray(Int64,1,1) > pmap(enumerate(vec)) do index_pair #note: this works in parallel > (i,entry) = index_pair > AccumulateVectorEntries[1,1]+=entry > end > return sdata(AccumulateVectorEntries) > end > > result=doit([1,2,3,4,5]) > > Is this sensible based on some principles of how parallel processing > works, or am I just missing something? PS - I'm trained as a statistician, > so please excuse any naivete re: computing principles. > > BTW -- I'm using > > *julia> **versioninfo()* > > Julia Version 0.3.8-pre+22 > > Commit 5078421* (2015-04-28 09:05 UTC) > > Platform Info: > > System: Linux (x86_64-amazon-linux) > > CPU: Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz > > WORD_SIZE: 64 > > BLAS: libmkl_rt > > LAPACK: libmkl_rt > > LIBM: libimf > > LLVM: libLLVM-3.3 > >