我有以下(示例)代码,它在计算集群上以被动模式执行:
> foo <- function(...)
> {
> require(copula)
> require(foreach)
> require(methods)
> require(np)
> require(parallel)
> {cl <- makeCluster(detectCores()-1) ; registerDoParallel(cl)}
...
> str(dat)
'data.frame': 31269 obs. of 15 variables
...
> clusterExport(cl=cl,varlist=c("dat",...))
> dumpster <- foreach(i=1:10,.packages=c("copula","foreach","np"),.export=c("dat"))%dopar%
> {... ; dat.new <- some.fn(dat) ; ...}
...
> stopCluster(cl)
> }
> foo(...)
Error in get(name, envir = envir) : object 'dat' not found
Calls: foo ... postNode -> sendData -> sendData.SOCKnode -> serialize -> get
Execution halted
我做错了什么?
答案 0 :(得分:0)
你混淆了一些指令,为了做这个命令
dat
我假设对象dumpster <- foreach(i=1:10,.packages=c("copula","np"), .combine = c)%dopar%{dat.new <- some.fn(dat)}
已经可用,所以这就是你使用foreach的方式
stopCluster(cl)
然后关闭群集
{{1}}