Fehler: Objekt '.doSnowGlobals' nicht gefunden?
Ich versuche, einen Code auf 4 Knoten zu parallelisieren (Typ = "SOCK"). Hier ist mein Code.
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
}
})
Ich erhalte diesen Fehler:
4 Knoten erzeugten Fehler; erster Fehler: Objekt '.doSnowGlobals' nicht gefunden.
Dieser Code funktioniert einwandfrei, wenn ich doMC verwende, d. H. Die gleichen Rechnerkerne verwende. Aber wenn ich versuche, andere Computer für paralleles Rechnen zu verwenden, erhalte ich den obigen Fehler. Wenn ich es in registerDoSNOW ändere, bleibt der Fehler bestehen.
Funktionieren Schnee und DoSNOW in einem Cluster? Ich könnte Knoten auf dem Localhost mit Schnee erstellen, aber nicht auf dem Cluster. Hat da draußen jemand Schnee benutzt?