Qué es la computación paralela

Introducción a la ingeniería de datos

Vincent Vankrunkelsven

Data Engineer @ DataCamp

Idea de la computación paralela

Base de las herramientas modernas de procesamiento de datos

  • Memoria
  • Potencia de proceso

Idea

  • Divide la tarea en subtareas
  • Distribuye las subtareas en varios equipos
  • Colabora para acabar la tarea

Diagrama de una tarea dividida en subtareas

Introducción a la ingeniería de datos

La sastrería

Diagrama que representa la sastrería

Gestionar una sastrería

Objetivo: 100 camisas

  • El mejor sastre termina 1 camisa / 20 minutos
  • Otros sastres hacen 1 camisa / 1 hora

 

Varios sastres a la vez > mejor sastre solo

Introducción a la ingeniería de datos

Ventajas de la computación paralela

  • Potencia de proceso
  • Memoria: particiona el dataset

 

Memoria RAM: Imagen de un chip de memoria RAM

Introducción a la ingeniería de datos

Riesgos de la computación paralela

Sobrecoste por comunicación

 

  • La tarea debe ser grande
  • Se necesitan varias unidades de proceso

 

Ralentización en paralelo: Gráfico que muestra la ralentización en paralelo

Introducción a la ingeniería de datos

Un ejemplo

 

Diagrama que ilustra el ejemplo de eventos olímpicos

Introducción a la ingeniería de datos

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)
Introducción a la ingeniería de datos

dask

 

import dask.dataframe as dd

# Particionar el dataframe en 4 athlete_events_dask = dd.from_pandas(athlete_events, npartitions = 4)
# Ejecutar cálculos en paralelo en cada partición result_df = athlete_events_dask.groupby('Year').Age.mean().compute()
Introducción a la ingeniería de datos

¡Vamos a practicar!

Introducción a la ingeniería de datos

Preparing Video For Download...