O que é computação paralela

Introdução à Engenharia de Dados

Vincent Vankrunkelsven

Data Engineer @ DataCamp

Ideia por trás da computação paralela

Base das ferramentas modernas de dados

  • Memória
  • Poder de processamento

Ideia

  • Dividir a tarefa em subtarefas
  • Distribuir subtarefas entre vários computadores
  • Trabalhar junto para concluir

Diagrama de tarefa dividida em subtarefas

Introdução à Engenharia de Dados

A alfaiataria

Diagrama representando a alfaiataria

Gerenciando uma alfaiataria

Meta: 100 camisas

  • Melhor alfaiate termina 1 camisa / 20 min
  • Outros alfaiates: 1 camisa / 1 hora

 

Vários alfaiates juntos > melhor alfaiate sozinho

Introdução à Engenharia de Dados

Benefícios da computação paralela

  • Poder de processamento
  • Memória: particionar o dataset

 

Módulo de memória RAM: Imagem de um módulo de memória RAM

Introdução à Engenharia de Dados

Riscos da computação paralela

Sobrecarga por comunicação

 

  • A tarefa precisa ser grande
  • Precisa de várias unidades de processamento

 

Lentidão paralela: Gráfico mostrando lentidão paralela

Introdução à Engenharia de Dados

Um exemplo

 

Diagrama ilustrando o exemplo dos Jogos Olímpicos

Introdução à Engenharia de Dados

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)
Introdução à Engenharia de Dados

dask

 

import dask.dataframe as dd

# Particionar o dataframe em 4 athlete_events_dask = dd.from_pandas(athlete_events, npartitions = 4)
# Rodar computações paralelas em cada partição result_df = athlete_events_dask.groupby('Year').Age.mean().compute()
Introdução à Engenharia de Dados

Vamos praticar!

Introdução à Engenharia de Dados

Preparing Video For Download...