CommencerCommencer gratuitement

De la tâche aux sous-tâches

Pour cet exercice, vous utiliserez le calcul parallèle pour appliquer la fonction take_mean_age() qui calcule l'âge moyen d'un athlète pour une année donnée dans l'ensemble de données des épreuves olympiques. Le DataFrame athlete_events a été chargé pour vous et contient, entre autres, deux colonnes :

  • Yearl'année où l'événement olympique a eu lieu
  • Age: l'âge de l'Olympien

Vous utiliserez le site multiprocessor.Pool API qui vous permet de répartir votre charge de travail sur plusieurs processus. La fonction parallel_apply() est définie dans l'exemple de code. Il prend en entrée la fonction appliquée, le regroupement utilisé et le nombre de cœurs nécessaires à l'analyse. Notez que le décorateur @print_timing est utilisé pour chronométrer chaque opération.

Cet exercice fait partie du cours

Introduction à l'ingénierie des données

Afficher le cours

Instructions

  • Complétez le code, de sorte que vous appliquiez d'abord take_mean_age avec le noyau 1, puis 2 et enfin 4.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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'), ____)
Modifier et exécuter le code