mclapply vs para bucles para trazar: velocidad y enfoque de escalabilidad

Estoy ejecutando una función en R que puede tardar mucho tiempo en ejecutarse, ya que ejecuta múltiples comandos para transformar y subcontratar algunos datos antes de introducirlosggplot trazar Necesito ejecutar esta función varias veces ajustando los valores de los argumentos. El ejemplo que daré es simple ... pero me preguntaba cómo acelerarlo. si se amplía, es decir, cuál es la forma más rápida de obtener cada combinación ... ¿existe un método genérico de conversión?for bucle enmclapply asumiendo que son más rápidos ... siéntase libre de proporcionar ejemplos de simulacros alternativos que demuestren una preferencia por un método en particular

ejemplo simulado

la función básica:

ff <- function(n, mu, stdev){
     x1 <- c(1:n)
     y1 <- rnorm(n,mu,stdev)
     z1 <- data.frame(cbind(x1,y1))
     ggplot(z1, aes(x=x1,y=y1))+
       geom_point()+
       labs(title=paste("n=",n,"mu=",mu, "stdev=",stdev))
}

Así que la forma en que la nieve pasa por los parámetros sería hacer lo siguiente ...

for(i in 1:10){
    for(j in 1:2){
       for(k in seq(100,500,by=100)){
         ff(k,i,j)
       }
    }
}

¿Cuál sería la forma más rápida de acelerar esto? Supongo que podría necesitar algo comoexpand.grid(x=c(1:10),y=c(1:2),z=seq(100,500,by=100)) y el usomclapply para correr a través de cada fila ... de alguna manera paralela? (Tengo 4 núcleos disponibles para esto). Siéntase libre de sacar brocas de la función básica o poner las cosas en la función básica de acuerdo con los métodos que crearían la mayor mejora en la velocidad. Obviamente, el proceso tomará más tiempo si aumenta el rango para cada parámetro, pero ¿no hay nada que se pueda hacer al respecto ... o se puede cambiar de alguna manera también si se divide entre más núcleos o algo ...?

y para obtener puntos de bonificación ... ¿hay algo que guarde las imágenes de salida y cree controles deslizantes como en el paquete?manipulate pasar por todos los parámetros de manera interactiva ... en el que todo lo que hace es extraer la imagen relevante, en lugar de recalcularla cada vez.

nótese bien Por favor, siéntase libre de usar / sugerir cualquier otro paquete (comoforeach) que crees que podría ser útil para tu solución

Respuestas a la pregunta(2)

Su respuesta a la pregunta