小编Raj*_*mar的帖子

错误:找不到对象'.doSnowGlobals'?

我正在尝试并行化4个节点上的代码(type ="SOCK").这是我的代码.

library(itertools)
library(foreach)
library(doParallel)
library(parallel)

workers <- ip address of 4 nodes
cl = makePSOCKcluster(workers, master="ip address of master")
registerDoParallel(cl)

z <- read.csv("ProcessedData.csv", header=TRUE, as.is=TRUE)
z <- as.matrix(z)


system.time({
  chunks <- getDoParWorkers()
  b <- foreach (these = isplitIndices(nrow(z),
                                      chunks=chunks),
                .combine = c) %dopar% {
                  a <- rep(0, length(these))
                  for (i in 1:length(these)) {
                    a[i] <- mean(z[these[i],])
                  }
                  a
                }
})
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

4个节点产生错误; 第一个错误:找不到对象'.doSnowGlobals'.

如果我使用doMC即使用相同的机器核心,此代码运行正常.但是当我尝试使用其他计算机进行并行计算时,我得到了上述错误.当我将其更改为registerDoSNOW时,错误仍然存​​在.

snow和DoSNOW是否在群集中工作?我可以使用snow在localhost上创建节点,但不能在群集上创建节点.谁在那里用雪?

parallel-processing foreach r snow

9
推荐指数
3
解决办法
5408
查看次数

标签 统计

foreach ×1

parallel-processing ×1

r ×1

snow ×1