Czym jest przetwarzanie równoległe

Wprowadzenie do inżynierii danych

Vincent Vankrunkelsven

Data Engineer @ DataCamp

Idea przetwarzania równoległego

Podstawa nowoczesnych narzędzi do przetwarzania danych

  • Pamięć
  • Moc obliczeniowa

Idea

  • Podział zadania na podzadania
  • Rozdzielenie podzadań między komputery
  • Wspólna realizacja zadania

Diagram podziału zadania na podzadania

Wprowadzenie do inżynierii danych

Zakład krawiecki

Diagram przedstawiający zakład krawiecki

Prowadzenie zakładu krawieckiego

Cel: 100 koszul

  • Najlepszy krawiec: koszula / 20 minut
  • Pozostali krawcy: koszula / 1 godzina

 

Wielu krawców razem > najlepszy krawiec

Wprowadzenie do inżynierii danych

Zalety przetwarzania równoległego

  • Moc obliczeniowa
  • Pamięć: partycjonowanie zbioru danych

 

Kość pamięci RAM: Zdjęcie kości pamięci RAM

Wprowadzenie do inżynierii danych

Zagrożenia przetwarzania równoległego

Narzut komunikacyjny

 

  • Zadanie musi być odpowiednio duże
  • Potrzeba wielu jednostek przetwarzających

 

Spowolnienie równoległe: Wykres przedstawiający spowolnienie równoległe

Wprowadzenie do inżynierii danych

Przykład

 

Diagram ilustrujący przykład z wydarzeniami olimpijskimi

Wprowadzenie do inżynierii danych

multiprocessing.Pool

from multiprocessing import Pool

def take_mean_age(year_and_group): year, group = year_and_group return pd.DataFrame({"Age": group["Age"].mean()}, index=[year])
with Pool(4) as p: results = p.map(take_mean_age, athlete_events.groupby("Year"))
result_df = pd.concat(results)
Wprowadzenie do inżynierii danych

dask

 

import dask.dataframe as dd

# Partition dataframe into 4 athlete_events_dask = dd.from_pandas(athlete_events, npartitions = 4)
# Run parallel computations on each partition result_df = athlete_events_dask.groupby('Year').Age.mean().compute()
Wprowadzenie do inżynierii danych

Czas na ćwiczenia!

Wprowadzenie do inżynierii danych

Preparing Video For Download...