Wat is parallel computing

Introductie tot Data Engineering

Vincent Vankrunkelsven

Data Engineer @ DataCamp

Het idee achter parallel computing

Basis van moderne dataverwerkingstools

  • Geheugen
  • Rekenkracht

Idee

  • Splits taak in subtaken
  • Verdeel subtaken over meerdere computers
  • Werk samen om te voltooien

Diagram van taak gesplitst in subtaken

Introductie tot Data Engineering

De kleermakerszaak

Diagram van de kleermakerszaak

Een kleermakerszaak runnen

Doel: 100 shirts

  • Beste kleermaker: 1 shirt / 20 min
  • Anderen: 1 shirt / 1 uur

 

Meerdere kleermakers samen > beste kleermaker

Introductie tot Data Engineering

Voordelen van parallel computing

  • Rekenkracht
  • Geheugen: splits de dataset

 

RAM-geheugenchip: Afbeelding van RAM-geheugenchip

Introductie tot Data Engineering

Risico’s van parallel computing

Overhead door communicatie

 

  • Taak moet groot zijn
  • Meerdere rekenunits nodig

 

Parallelle vertraging: Plot met parallelle vertraging

Introductie tot Data Engineering

Een voorbeeld

 

Diagram met voorbeeld van Olympische evenementen

Introductie tot Data Engineering

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)
Introductie tot Data Engineering

dask

 

import dask.dataframe as dd

# Partitioneer dataframe in 4 athlete_events_dask = dd.from_pandas(athlete_events, npartitions = 4)
# Draai parallelle berekeningen op elke partitie result_df = athlete_events_dask.groupby('Year').Age.mean().compute()
Introductie tot Data Engineering

Laten we oefenen!

Introductie tot Data Engineering

Preparing Video For Download...