¿Cuánto tarda en ejecutarse este código?
Es:
library(future)
plan(multiprocess, workers = 4)
system.time({
a1 <- future({Sys.sleep(7); 1})
a2 <- future({Sys.sleep(1); 1})
a3 <- future({Sys.sleep(1); 1})
a4 <- future({Sys.sleep(1); 1})
a5 <- future({Sys.sleep(1); 1})
a6 <- future({Sys.sleep(1); 1})
a7 <- future({Sys.sleep(1); 1})
res <- sapply(list(a1, a2, a3, a4, a5, a6, a5), value)
})
Piensa antes las posibles opciones:
- ~8 segundos: ejecuta primero
a1
-a4
en 7 segundos y luegoa5
-a7
en un segundo adicional. - ~7 segundos: ejecuta primero
a1
-a4
, pero cuando acabana2
-a4
, lanzaa5
-a7
, que terminan antes quea1
- ¿Otras?
Vosotros mismos.
(Pensad que si la respuesta fuese ~7 segundos, podría hacerse esto directamente con future
).