Qu’est-ce que le calcul parallèle

Introduction au data engineering

Vincent Vankrunkelsven

Data Engineer @ DataCamp

Principe du calcul parallèle

Base des outils modernes de traitement des données

  • Mémoire
  • Puissance de calcul

Idée

  • Diviser la tâche en sous-tâches
  • Répartir ces sous-tâches sur plusieurs machines
  • Coopérer pour terminer la tâche

Schéma d’une tâche divisée en sous-tâches

Introduction au data engineering

L’atelier de tailleur

Schéma représentant l’atelier de tailleur

Gérer un atelier de tailleur

Objectif : 100 chemises

  • Meilleur tailleur : 1 chemise / 20 min
  • Autres : 1 chemise / 1 h

 

Plusieurs tailleurs ensemble > meilleur tailleur seul

Introduction au data engineering

Atouts du calcul parallèle

  • Puissance de calcul
  • Mémoire : partitionner le jeu de données

 

Puce de mémoire RAM: Image d’une puce de mémoire RAM

Introduction au data engineering

Risques du calcul parallèle

Surcharge due aux communications

 

  • Tâche de grande taille requise
  • Plusieurs unités de calcul nécessaires

 

Ralentissement en parallèle: Courbe montrant un ralentissement en parallèle

Introduction au data engineering

Un exemple

 

Schéma illustrant l’exemple des épreuves olympiques

Introduction au 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)
Introduction au data engineering

dask

 

import dask.dataframe as dd

# Fractionner le DataFrame en 4 athlete_events_dask = dd.from_pandas(athlete_events, npartitions = 4)
# Lancer des calculs parallèles sur chaque partition result_df = athlete_events_dask.groupby('Year').Age.mean().compute()
Introduction au data engineering

Passons à la pratique !

Introduction au data engineering

Preparing Video For Download...