【问题标题】:foreach parallel computing using external packages使用外部包进行 foreach 并行计算
【发布时间】:2021-07-29 02:44:10
【问题描述】:

我自己创建了一个包并尝试将其应用于并行计算。
假设包包含 function1function2
我的代码是

cl = makeCluster(2)
registerDoParallel(cl)

foreach(i=1:N,.packages='mypackage') %dopar% {
   res = function1(i)
   res
}
stopCluster(cl)

然后有错误,function1在mypackage中。

Error in { : task 1 failed - "could not find function "function1""

但是,如果我通过添加来更改代码

.export = 'function1'

错误消失了。

感谢任何可以解释这一点的人。

【问题讨论】:

    标签: r r-package parallel.foreach


    【解决方案1】:

    要么使用.export作为OP提到的或指定函数为packageName::functionName

    cl = makeCluster(2)
    registerDoParallel(cl)
    
    foreach(i=1:N,.packages='mypackage') %dopar% {
       res = mypackage::function1(i)
       res
    }
    stopCluster(cl)
    

    【讨论】:

    • 这不是解释,但你提到了`packageName::functionName`,我想我现在明白了。谢谢。
    • @Lonely_rifle 问题是工人的环境不同,它没有像我们希望的那样导出功能
    猜你喜欢
    • 1970-01-01
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 2019-06-29
    相关资源
    最近更新 更多