para - r paquetes instalados
¿Por qué el paquete plyr no usa mi back-end paralelo? (2)
La documentación para estados aaply
.parallel: si es ''VERDADERO'', aplique la función en paralelo, usando un back-end paralelo provisto por foreach
así que presumiblemente necesita usar el paquete foreach
lugar del paquete parallel
.
Estoy tratando de usar el paquete parallel
en R para operaciones paralelas en lugar de doSNOW
ya que está integrado y aparentemente de la manera en que el proyecto R quiere que las cosas vayan. Estoy haciendo algo mal que no puedo precisar sin embargo. Toma por ejemplo esto:
a <- rnorm(50)
b <- rnorm(50)
arr <- matrix(cbind(a,b),nrow=50)
aaply(arr,.margin=1,function(x){x[1]+x[2]},.parallel=F)
Esto funciona bien, produciendo las sumas de mis dos columnas. Pero si trato de traer el paquete paralelo:
library(parallel)
nodes <- detectCores()
cl <- makeCluster(nodes)
setDefaultCluster(cl)
aaply(arr,.margin=1,function(x){x[1]+x[2]},.parallel=T)
Lanza el error
2: In setup_parallel() : No parallel backend registered
3: executing %dopar% sequentially: no parallel backend registered
¿Estoy inicializando el backend mal?
Prueba esta configuración:
library(doParallel)
library(plyr)
nodes <- detectCores()
cl <- makeCluster(nodes)
registerDoParallel(cl)
aaply(ozone, 1, mean,.parallel=TRUE)
stopCluster(cl)
Como nunca utilicé plyr
para computación paralela, no tengo idea de por qué esto plyr
advertencias. El resultado es correcto de todos modos.