Hello all, I'm trying to understand the sort of performance that we can get in Parallel with Julia. DistributedArrays look very tempting, but my first try gives me a hopeless performance. As a test code, I got it from the slides (pages 75-80) at http://www.csd.uwo.ca/~moreno/cs2101a_moreno/Parallel_computing_with_Julia.pdf
The code, which just defines two functions is available at: https://bitbucket.org/snippets/angelv/5kb4 and also attached to this message for convenience When I run it in my 8-core laptop in serial or in parallel (see below for output of the different runs), I see no better performance in parallel (though I see a huge increase in the allocated memory in parallel). With version 0.4-dev drand is not defined (well, actually the whole Distributed Arrays section is gone from the documentation for 0.4-dev). Any pointers on what can be done to improve this appreciated (this has to be the simplest possible parallel program, with no communication at all, so we should be able to get near perfect scalability here). Thanks a lot, Ángel de Vicente ========== angelv@pilas:~/mhdsolver-julia/Misc/Julia_Parallel$ julia -q julia> println(VERSION);require("simulation.jl");N=1000000;T=1000;A=rand(3,N);@time SimulationSerial(A,N,T) 0.3.7 elapsed time: 2.376680715 seconds (80 bytes allocated) ========== angelv@pilas:~/mhdsolver-julia/Misc/Julia_Parallel$ julia -p 4 -q julia> println(VERSION);require("simulation.jl");N=1000000;T=1000;dA=drand(3,N);@time SimulationParallel(dA,N,T) 0.3.7 elapsed time: 2.510426469 seconds (20011756 bytes allocated) 4-element Array{Any,1}: nothing nothing nothing nothing ============ angelv@pilas:~/mhdsolver-julia/Misc/Julia_Parallel$ /home/angelv/JULIA-DEV/julia/julia -q julia> println(VERSION);require("simulation.jl");N=1000000;T=1000;A=rand(3,N);@time SimulationSerial(A,N,T) 0.4.0-dev+4572 elapsed time: 2.33095253 seconds (283 kB allocated) ============= angelv@pilas:~/mhdsolver-julia/Misc/Julia_Parallel$ /home/angelv/JULIA-DEV/julia/julia -q -p 4 julia> println(VERSION);require("simulation.jl");N=1000000;T=1000;dA=drand(3,N);@time SimulationParallel(dA,N,T) 0.4.0-dev+4572 ERROR: UndefVarError: drand not defined
simulation.jl
Description: Binary data
