如何在简单的Julia代码中使用@everywhere宏进行并行计算

Ats*_*kai 5 julia

我正在尝试为并行计算编写一个简单的Julia代码.

我写了一个基于这个文档的简单代码: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
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误消息.

错误:LoadError:在worker 2上:

UndefVarError:#test未定义

我认为@everywhere宏无法正常工作.

我正在使用Julia 0.6.0.

有谁知道如何修理它?

Dan*_*etz 5

这些@everywhereaddprocs它们的顺序相反(导致添加的工人不知道该功能test).相反,它的工作原理并没有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
Run Code Online (Sandbox Code Playgroud)