ComeçarComece de graça

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 aconteceu
  • Age: 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

Ver curso

Instruções do exercício

  • Complete o código para aplicar take_mean_age primeiro com 1 núcleo, depois com 2 e, por fim, com 4 nú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'), ____)
Editar e executar o código