ComenzarEmpieza gratis

De la tarea a las subtareas

Para este ejercicio, utilizarás la computación en paralelo para aplicar la función take_mean_age() que calcula la edad media de los atletas en un año determinado en el conjunto de datos de eventos de las Olimpiadas. El DataFrame athlete_events viene cargado y contiene, entre otras, dos columnas:

  • Year: el año en que tuvo lugar el acontecimiento olímpico
  • Age: la edad del atleta olímpico

Utilizarás la página multiprocessor.Pool API, que te permite distribuir la carga de trabajo entre varios procesos. La función parallel_apply() está definida en el código de ejemplo. Toma como entrada la función que se aplica, la agrupación utilizada y el número de núcleos necesarios para el análisis. Ten en cuenta que el decorador @print_timing se utiliza para temporizar cada operación.

Este ejercicio forma parte del curso

Introducción a la ingeniería de datos

Ver curso

Instrucciones de ejercicio

  • Completa el código, de forma que primero apliques take_mean_age con el núcleo 1, luego 2 y finalmente 4 núcleos.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# 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 y ejecutar código