ComeçarComece de graça

Migrando para parApply

Para executar código em paralelo usando o pacote parallel, o fluxo básico tem três etapas.

  1. Crie um cluster usando makeCluster().
  2. Faça algum trabalho.
  3. Pare o cluster usando stopCluster().

A forma mais simples de criar um cluster é passar um número para makeCluster(). Isso cria um cluster do tipo padrão, executando o código nesse número de núcleos.

O objeto dd é um data frame com 10 colunas e 100 linhas. O código a seguir usa apply() para calcular as medianas das colunas:

apply(dd, 2, median)

Para executar isso em paralelo, você substitui apply() por parApply(). Os argumentos dessa função são os mesmos, exceto pelo fato de que ela recebe um argumento de cluster antes dos argumentos usuais de apply().

Este exercício faz parte do curso

Escrevendo código R eficiente

Ver curso

Instruções do exercício

  • Use a função detectCores() para imprimir no console o número de núcleos disponíveis.
  • Crie um cluster usando makeCluster(); defina o número de núcleos como 2. Salve o resultado como cl.
  • Reescreva a função apply() acima como parApply(). Lembre-se: o primeiro argumento agora deve ser o objeto de cluster, cl.
  • Pare o cluster usando stopCluster().

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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 e executar o código