Migrando para parApply
Para executar código em paralelo usando o pacote parallel, o fluxo básico tem três etapas.
- Crie um cluster usando
makeCluster(). - Faça algum trabalho.
- 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
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 comocl. - Reescreva a função
apply()acima comoparApply(). 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)