我有这样的功能:
@everywhere function bellman_operator!(rbc :: RBC)
...
@sync @parallel for i = 1:m
....
for j = 1:n
v_max = -1000.0
...
for l = Next : n
......
if v > vmax
vmax = v
Next = l
else
break
end
end
f_v[j, i] = vmax
f_p[j, i] = k
end
end
端
f_v
和f_p
是sharedArrays,我想为每个工作者的结果提供不同的数组,我看到了一些示例,但我无法解决它。我如何使用数组来获得每个数据的结果工人最后结合结果而不是使用SharedArrays?
答案 0 :(得分:1)
这是你想要的吗?
示例1.使用+
:
a = @parallel (+) for i in 1:1000
rand(10, 10)
end
示例2.只收集结果而不将它们合并:
x = Future[]
for i in 1:1000
push!(x, @spawn rand(10,10))
end
y = fetch.(x)