gpt4 book ai didi

r - 事先知道要 clusterExport 的对象

转载 作者:行者123 更新时间:2023-12-04 12:48:54 25 4
gpt4 key购买 nike

我是使用并行包的新手,并已开始探索它们以加快我的一些工作。我经常遇到的一个烦恼是 foreach当我没有时,命令会抛出问题 clusterExport相关的函数/变量。
例子
我知道下面的例子不一定需要foreach为了使它更快,但为了说明起见,我将使用它。

library(doParallel)
library(parallel)
library(lubridate)
library(foreach)

cl <- makeCluster(c("localhost", "localhost", "localhost","localhost"), type = "SOCK")
registerDoParallel(cl, cores = 4)

Dates <- sample(c(dates = format(seq(ISOdate(2010,1,1), by='day', length=365), format='%d-%m-%Y')), 500, replace = TRUE)

foreach(i = seq_along(Dates), .combine = rbind) %dopar% dmy(Dates[i])

Error in dmy(Dates[i]) : task 1 failed - "could not find function "dmy""
如您所见,有一个错误提示 dmy找不到函数。然后我必须继续添加以下内容:
clusterExport(cl, c("dmy"))
所以我的问题是,除了查看错误以获取有关导出内容的线索之外,是否有更优雅的方式预先知道要导出哪些对象,或者是否有一种方法可以在运行 foreach 之前与所有从属共享全局环境?

最佳答案

无需像那样手动导出单个包函数。您可以使用 .packages foreach 的论据函数来加载所需的包,所以所有的包函数都将可供您使用 %dopar%表达。

关于r - 事先知道要 clusterExport 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10688218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com