Julia:涉及调用另一个函数的函数的并行循环
Julia: parallel loops involving a function that calls another function
我有两个文件
test_file.jl
using Distributed
function inner_function(v)
v_2 = 2 * v
return v_2
end
function loop(N, v)
@sync @distributed for i in 1:N
v_3 = inner_function(v)
v_3[1] = i
println(i)
println(v_3)
end
end
test_file_call.jl
@everywhere include("test_file.jl")
v = [1 2 3 4]
loop(100,v_2)
当我 运行 julia -p 2 test_file_call.jl
时,我收到一条错误消息说
ERROR: LoadError: UndefVarError: v_2 not defined
我不确定为什么。 v_2
是在函数中创建的变量,我已经使用了 @everywhere include("test_file.jl")
所以 Julia 不应该说变量是未定义的。我能得到提示吗?谢谢!
您在 loop(100, v_2)
调用中使用了 v_2
,因此 Julia 在全局范围内查找 v_2
,但没有在那里找到它。可能您想在定义 v
.
时编写 loop(100, v)
我有两个文件
test_file.jl
using Distributed
function inner_function(v)
v_2 = 2 * v
return v_2
end
function loop(N, v)
@sync @distributed for i in 1:N
v_3 = inner_function(v)
v_3[1] = i
println(i)
println(v_3)
end
end
test_file_call.jl
@everywhere include("test_file.jl")
v = [1 2 3 4]
loop(100,v_2)
当我 运行 julia -p 2 test_file_call.jl
时,我收到一条错误消息说
ERROR: LoadError: UndefVarError: v_2 not defined
我不确定为什么。 v_2
是在函数中创建的变量,我已经使用了 @everywhere include("test_file.jl")
所以 Julia 不应该说变量是未定义的。我能得到提示吗?谢谢!
您在 loop(100, v_2)
调用中使用了 v_2
,因此 Julia 在全局范围内查找 v_2
,但没有在那里找到它。可能您想在定义 v
.
loop(100, v)