ComeçarComece gratuitamente

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

Ver Curso

Instruções de exercício

  • Complete o código, de modo que você aplique take_mean_age com o núcleo 1 primeiro, depois 2 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'), ____)
Editar e executar código