Pasar a parApply
Para ejecutar código en paralelo usando el paquete parallel, el flujo de trabajo básico tiene tres pasos.
- Crea un clúster con
makeCluster(). - Haz el trabajo.
- Detén el clúster con
stopCluster().
La forma más sencilla de crear un clúster es pasar un número a makeCluster(). Esto crea un clúster del tipo predeterminado y ejecuta el código en ese número de núcleos.
El objeto dd es un data frame con 10 columnas y 100 filas. El siguiente código usa apply() para calcular las medianas de las columnas:
apply(dd, 2, median)
Para ejecutar esto en paralelo, sustituye apply() por parApply(). Los argumentos de esta función son los mismos, excepto que ahora toma un argumento de clúster antes de los argumentos habituales de apply().
Este ejercicio forma parte del curso
Escribir código R eficiente
Instrucciones del ejercicio
- Usa la función
detectCores()para imprimir en la consola el número de núcleos disponibles. - Crea un clúster con
makeCluster(); establece el número de núcleos en 2. Guarda el resultado comocl. - Reescribe la llamada a
apply()anterior comoparApply(). Recuerda: ahora el primer argumento debe ser el objeto de clúster,cl. - Detén el clúster usando
stopCluster().
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Determine the number of available cores
___
# Create a cluster via makeCluster
cl <- makeCluster(___)
# Parallelize this code
apply(dd, 2, median)
# Stop the cluster
stopCluster(cl)