【发布时间】:2017-04-26 10:23:49
【问题描述】:
我想知道如何在函数的@parallel for 循环中更新数组并返回结果。这是一个简单的例子:
addprocs(2)
function parallel_func()
a = Dict{Int64, Int64}()
@sync @parallel for i in 1:10
a[i] = 2*i
end
println(length(a))
return a
end
a = parallel_func()
println(length(a))
在这里,a 在使用 @parallel 宏运行 for 循环后为空。
我知道@parallel 复制每个工人的数据并且不触及原始数据,但我认为可能有一种方法可以从所有工人那里获取数据。如果您可以评论任何替代方案以加快 for 循环(如上面的示例),我将不胜感激。
【问题讨论】: