Hi everyone, I'm trying to start using Julia for some Monte Carlo
simulations
(not MCMC) which I'd like to parallelize. I haven't found any documentation
for setting the RNG's seed for parallelization. The naive approach gives
different results than non-parallel execution (which is not surprising).
Starting with `julia -p 4` and executing:
## Sequential execution
srand(1)
seqfor = Array(Float64,4)
for i=1:4
seqfor[i] = rand()
end
## Parallel execution
srand(1)
parfor = @parallel (vcat) for i=1:4
rand()
end
[sort(parfor) sort(seqfor)]
gives
4x2 Array{Float64,2}:
0.346517 0.00790928
0.346517 0.236033
0.662369 0.312707
0.914194 0.346517
and re-running the parallel code can give different results even after
re-seeding. If we start julia without `-p 4` then both loops give the
same results. If it matters, I'm using Julia version 0.3.0-rc1+28
from source (commit 79e4771).
Is there documentation on the right way to parallelize simulations in
Julia? If not, should my next step be to carefully read the "parallel
computing" documentation?