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 do exercício
- Complete o código, de modo que você aplique
take_mean_agecom o núcleo1primeiro, depois2e, por fim,4nú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'), ____)