Tengo un data.frame de celdas, valores y coordenadas. Reside en el ambiente global.escribiendo en un entorno global cuando se ejecuta en paralelo
> head(cont.values)
cell value x y
1 11117 NA -34 322
2 11118 NA -30 322
3 11119 NA -26 322
4 11120 NA -22 322
5 11121 NA -18 322
6 11122 NA -14 322
Debido a que mi función personalizada lleva casi un segundo para calcular célula individual (y tengo decenas de miles de células para calcular) No quiero duplicar los cálculos para las células que ya tienen un valor. Mi siguiente solución intenta evitar eso. Cada celda se puede calcular de forma independiente, gritando para la ejecución en paralelo.
Lo que mi función realmente hace es verificar si hay un valor para un número de celda específico y si es NA, lo calcula y lo inserta en lugar de NA.
puedo correr mi función mágica (resultado es value
para una correspondiente cell
) usando aplica familia de funciones y desde dentro apply
, puedo leer y escribir cont.values
sin ningún problema (que es en el entorno global).
Ahora, quiero ejecutar esto en paralelo (usando snowfall
) y no puedo leer o escribir desde/a esta variable desde el núcleo individual.
Pregunta: ¿Qué solución sería capaz de leer/escribir desde/hacia una variable dinámica que reside en el entorno global desde el trabajador (núcleo) al ejecutar una función en paralelo. ¿Hay un mejor enfoque para hacer esto?
I pueden ejecutar esto algún día pero actualmente de forma oficial no tienen acceso a un sistema de tipo POSIX (pegado en Windows), lo que significa que puede' t ejecutar un servidor todavía. –