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



Attachment: simulation.jl
Description: Binary data

Reply via email to