De tarefa a subtarefas
Neste exercício, você vai usar computação paralela para aplicar a função take_mean_age() que calcula a idade média dos atletas em um determinado ano no conjunto de dados de eventos das Olimpíadas. O DataFrame athlete_events já foi carregado e contém, entre outras, duas colunas:
Year: o ano em que o evento olímpico aconteceuAge: a idade do atleta olímpico
Você vai usar a API multiprocessor.Pool, que permite distribuir sua carga de trabalho por vários processos. A função parallel_apply() está definida no código de exemplo. Ela recebe como entrada a função a ser 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 medir o tempo de cada operação.
Este exercício faz parte do curso
Introdução à Engenharia de Dados
Instruções do exercício
- Complete o código para aplicar
take_mean_ageprimeiro com1núcleo, depois com2e, por fim, com4núcleos.
Exercício interativo prático
Experimente este exercício completando 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'), ____)