编写并行for循环

时间:2017-11-19 17:03:18

标签: parallel-processing julia

我很困惑如何从不同的工作人员声明程序的哪些部分是可访问的。在我的程序中相对较低的级别,我有一个for循环,我想并行化。

module module_name
[...]
addprocs(3)
totalsum = @parallel (+) for i in 1:large_number
    tmp_sum = 0
    for j in 1:num
        ...  # calls f1 f2
    end
    tmp_sum  # not sure how to 'return' the result, the examples have a conveniantly placed calculation at the end
end
rmprocs([2 3 4])
[...]
end

据我了解,我必须将@everywhere装饰者放在f1f2的前方。但该计划在很久以前就失败了,其他工作人员抱怨UndefVarError: module_name not defined,我不知道如何解决这个问题。

我觉得我错过了设置并行处理所需的东西。正如我所理解的那样,除了编写实际的@parallel部分之外,还需要添加proc,然后将@everywhere装饰器添加到循环内使用的那些函数中。那是真的吗?

我知道pmap更适合我在这里所做的事情,但我想让更简单的选项先工作(我需要传递几个参数pmap函数)。< / p>

0 个答案:

没有答案