¿Hay alguna forma de inicializar un clúster doSMP similar a clusterEvalQ
y clusterExport
en el paquete de nieve? Por ejemplo:¿Cómo se pueden inicializar los trabajadores con doSMP?
x <- 1:10
y <- 10:1
z <- rnorm(10)
cl <- makeSOCKcluster(2)
clusterEvalQ(cl, library(quantmod))
clusterExport(cl, list("x","y","z"))
clusterEvalQ(cl, ls())
clusterEvalQ(cl, search())
hay una opción initEnvir
a doSMP, pero ?doSMP
dice
‘initEnvir’ is a function to be executed by each worker before any tasks are executed associated with a foreach. Its purpose is to initialize the execution environment, or the worker in general. It is only executed by a worker if that worker executes at least one task associated with the foreach.
Cada trabajador necesita una copia de varios objetos de gran tamaño con el fin de ejecutar la expresión lanzo foreach
. Además, necesito llamar al foreach
varios cientos de veces, con versiones idénticas de estos objetos grandes. Sería ineficiente copiar estos objetos para cada llamada al foreach
.
Incluso si no hay una forma preconfigurada para hacer esto, agradecería un poco.
pensé que no había acceso al entorno de base, que negaría la necesidad de copiar. ¿O me estoy perdiendo algo? – Iterator
Simplemente curiosidad por qué estás implementando con doSMP en lugar de nieve? He encontrado que la nieve es más estable y portátil. – darckeen
@darckeen: no estoy _sólo_ implementando con doSMP. Estoy creando opciones para que los usuarios empleen cualquier servidor de respaldo que elijan, incluido doSMP. –