Von der Aufgabe zu den Teilaufgaben
In dieser Übung wendest du mit Hilfe von Parallelrechnern die Funktion take_mean_age()
an, die das Durchschnittsalter der Athleten in einem bestimmten Jahr im Datensatz der Olympischen Spiele berechnet. Der DataFrame athlete_events
wurde für dich geladen und enthält unter anderem zwei Spalten:
Year
: das Jahr, in dem das olympische Ereignis stattgefunden hatAge
: das Zeitalter des Olympischen
Du wirst die multiprocessor.Pool
API verwenden, die es dir ermöglicht, deine Arbeitslast auf mehrere Prozesse zu verteilen. Die Funktion parallel_apply()
ist im Beispielcode definiert. Sie nimmt als Eingabe die Funktion, die angewandt wird, die verwendete Gruppierung und die Anzahl der für die Analyse benötigten Kerne auf. Beachte, dass der @print_timing
Dekorator verwendet wird, um jeden Vorgang zu timen.
Diese Übung ist Teil des Kurses
Einführung in die Datentechnik
Anleitung zur Übung
- Vervollständige den Code, so dass du
take_mean_age
zuerst mit1
Kernen, dann2
und schließlich4
Kernen anwendest.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# 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'), ____)