De tarefa para subtarefas
Para este exercício, você usará a computação paralela para aplicar a função take_mean_age()
que calcula a idade média do atleta em um determinado ano no conjunto de dados de eventos das Olimpíadas. O DataFrame athlete_events
foi carregado para você e contém, entre outras, duas colunas:
Year
: o ano em que o evento olímpico foi realizadoAge
: a era do olimpiano
Você usará o multiprocessor.Pool
API, que permite distribuir sua carga de trabalho em vários processos. A função parallel_apply()
é definida no código de amostra. Ele recebe como entrada a função que está sendo aplicada, o agrupamento usado e o número de núcleos necessários para a análise. Observe que o decorador @print_timing
é usado para cronometrar cada operação.
Este exercício faz parte do curso
Introdução à engenharia de dados
Instruções de exercício
- Complete o código, de modo que você aplique
take_mean_age
com o núcleo1
primeiro, depois2
e, por fim,4
núcleos.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
# Function to apply a function over multiple cores
@print_timing
def parallel_apply(apply_func, groups, nb_cores):
with Pool(nb_cores) as p:
results = p.map(apply_func, groups)
return pd.concat(results)
# Parallel apply using 1 core
parallel_apply(take_mean_age, athlete_events.groupby('Year'), ____)
# Parallel apply using 2 cores
parallel_apply(take_mean_age, athlete_events.groupby('Year'), ____)
# Parallel apply using 4 cores
parallel_apply(take_mean_age, athlete_events.groupby('Year'), ____)