Tasas de crecimiento de la población con mclapply()
Como programador estadístico, haces muchos bootstrap en R. Uno de los análisis rutinarios que realizas es el bootstrap de una distribución para la tasa media de crecimiento de la población de distintos países a lo largo de un periodo de tiempo determinado.
El código actual en producción utiliza un clúster PSOCK y parLapply() para paralelizar este proceso y conseguir una ejecución eficiente. Sin embargo, esto sigue siendo lento para las necesidades de producción. Tu jefe te ha pedido que compares el rendimiento de los clusters PSOCK frente a FORK.
gr_list se ha cargado en tu espacio de trabajo. Cada elemento de gr_list contiene las tasas de crecimiento de la población de un país determinado de 2001 a 2021. La función de arranque, boot_dist(), también está disponible. Se han cargado los paquetes parallel y microbenchmark.
Este ejercicio forma parte del curso
Programación paralela en R
Instrucciones del ejercicio
- Utiliza la versión FORK de
parLapply(). - Proporciona la lista de entradas.
- Indica la función que hay que aplicar a cada elemento de la entrada.
- Especifica cuatro núcleos para el cluster FORK.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
microbenchmark(
"PSOCK" = {
cl <- makeCluster(4)
parLapply(cl, gr_list, boot_dist)
stopCluster(cl)
},
# Use the FORK version of parLapply()
"FORK" = ___(
# Supply input
___,
# Supply function to apply
___,
# Specify number of cores
___ = ___),
times = 1)