I am trying to write a simple Julia code for parallel computing.
I wrote a simple code based on this doc: https://docs.julialang.org/en/latest/manual/parallel-computing
@everywhere function test(x)
return x * 2.0
end
nprocess = 5
addprocs(nprocess)
responses = Vector{Any}(nworkers())
for i in 1:nworkers()
responses[i] = remotecall(test, i+1, i)
end
for res in responses
wait(res)
end
However, I got this error message.
ERROR: LoadError: On worker 2:
UndefVarError: #test not defined
I think the @everywhere macro doesn't work correctly.
I'm using Julia 0.6.0.
Does anyone know how to fix it?
The @everywhere
and the addprocs
are in the reverse order (causing the added workers not to know about the function test
). The other way around it works and doesn't do the UndefVarError
:
nprocess = 5
addprocs(nprocess)
responses = Vector{Any}(nworkers())
@everywhere function test(x)
return x * 2.0
end
for i in 1:nworkers()
responses[i] = remotecall(test, i+1, i)
end
for res in responses
wait(res)
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With