ComenzarEmpieza gratis

Pasar a parApply

Para ejecutar código en paralelo usando el paquete parallel, el flujo de trabajo básico tiene tres pasos.

  1. Crea un clúster con makeCluster().
  2. Haz el trabajo.
  3. 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

Ver curso

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 como cl.
  • Reescribe la llamada a apply() anterior como parApply(). 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)
Editar y ejecutar código