Ah, I missed in the docs that if you don't give a reduction operator it executes asynchronously and you need to prepend with @sync to make sure there workers have actually finished running the loop.
On Saturday, June 11, 2016 at 4:02:31 PM UTC+2, Marius Millea wrote: > > Kinda new to Julia so not sure where to post this but I'll start here. The > simple example from the docs involving @parallel and SharedArray doesn't > seem to work. I would think I should end up with a=1:10, but instead it all > zeros. > > _ _ _(_)_ | A fresh approach to technical computing > (_) | (_) (_) | Documentation: http://docs.julialang.org > _ _ _| |_ __ _ | Type "?help" for help. > | | | | | | |/ _` | | > | | |_| | | | (_| | | Version 0.5.0-dev+4553 (2016-06-06 02:05 UTC) > _/ |\__'_|_|_|\__'_| | Commit f4cb80b (5 days old master) > |__/ | x86_64-unknown-linux-gnu > > julia> addprocs() > 8-element Array{Int64,1}: > 2 > 3 > 4 > 5 > 6 > 7 > 8 > 9 > > julia> begin > a = SharedArray(Float64,10) > @parallel for i=1:10 > a[i] = i > end > end > 8-element Array{Any,1}: > Future(2,1,26,#NULL) > Future(3,1,27,#NULL) > Future(4,1,28,#NULL) > Future(5,1,29,#NULL) > Future(6,1,30,#NULL) > Future(7,1,31,#NULL) > Future(8,1,32,#NULL) > Future(9,1,33,#NULL) > > julia> a > 10-element SharedArray{Float64,1}: > 0.0 > 0.0 > 0.0 > 0.0 > 0.0 > 0.0 > 0.0 > 0.0 > 0.0 > 0.0 > > > This is using a nightly build of v0.5.0 which I figured I should since > this exact example is included in the 0.5.0 docs but not the 0.4.5 ones. In > any case, from what I can gather this *should* also work on 0.4.5, and I've > tried it and the results is identical as above. If I just put these > commands in a script it also doesn't work. One note, if I just execute each > command on its own line, rather than grouping them with the begin, then it > works. > > Any ideas whats going on? >