Från uppgift till deluppgifter
I den här övningen använder du parallell beräkning för att tillämpa funktionen take_mean_age(), som beräknar medelåldern för idrottare under ett givet år i OS-datamängden. DataFrame:n athlete_events har redan laddats in och innehåller bland annat två kolumner:
Year: det år då OS-evenemanget ägde rumAge: idrottarens ålder
Du kommer att använda API:et multiprocessor.Pool, som gör det möjligt att fördela arbetsbelastningen över flera processer. Funktionen parallel_apply() är definierad i exempelkoden. Den tar emot funktionen som ska tillämpas, grupperingen som används och antalet kärnor som behövs för analysen. Observera att dekoratören @print_timing används för att mäta varje åtgärds körtid.
Den här övningen är en del av kursen
Introduktion till datatekniker
Övningsinstruktioner
- Komplettera koden så att du tillämpar
take_mean_agemed först1kärna, sedan2och slutligen4kärnor.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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'), ____)