Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Komplettera koden så att du tillämpar take_mean_age med först 1 kärna, sedan 2 och slutligen 4 kä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'), ____)
Redigera och kör kod