erro: objeto '.doSnowGlobals' não encontrado?
Estou tentando paralelizar um código em 4 nós (tipo = "SOCK"). Aqui está o meu código.
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
}
})
Eu recebo este erro:
4 nós produziram erros; primeiro erro: objeto '.doSnowGlobals' não encontrado.
Esse código funciona bem se eu estiver usando o doMC, ou seja, os núcleos da mesma máquina. Mas quando tento usar outros computadores para computação paralela, obtenho o erro acima. Quando eu mudo para registerDoSNOW, o erro persiste.
A neve e o DoSNOW funcionam em um cluster? Eu poderia criar nós no host local usando neve, mas não no cluster. Alguém aí usando neve?