Paralel hesaplama nedir

Data Engineering'e Giriş

Vincent Vankrunkelsven

Data Engineer @ DataCamp

Paralel hesaplamanın ardındaki fikir

Modern veri işleme araçlarının temeli

  • Bellek
  • İşlem gücü

Fikir

  • Görevi alt görevlere bölün
  • Alt görevleri birden çok bilgisayara dağıtın
  • Görevi birlikte tamamlayın

Görevin alt görevlere bölünmesini gösteren diyagram

Data Engineering'e Giriş

Terzi dükkânı

Terzi dükkânını gösteren diyagram

Bir terzi dükkânı işletmek

Hedef: 100 gömlek

  • En iyi terzi: gömlek / 20 dakika
  • Diğer terziler: gömlek / 1 saat

 

Birden çok terzi birlikte > en iyi terzi

Data Engineering'e Giriş

Paralel hesaplamanın faydaları

  • İşlem gücü
  • Bellek: veri kümesini bölümlere ayırın

 

RAM bellek yongası: RAM bellek yongasının görseli

Data Engineering'e Giriş

Paralel hesaplamanın riskleri

İletişim kaynaklı ek yük

 

  • Görev büyük olmalı
  • Birden çok işlem birimi gerek

 

Paralel yavaşlama: Paralel yavaşlamayı gösteren grafik

Data Engineering'e Giriş

Bir örnek

 

Olimpiyat etkinlikleri örneğini gösteren diyagram

Data Engineering'e Giriş

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)
Data Engineering'e Giriş

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()
Data Engineering'e Giriş

Hadi pratik yapalım!

Data Engineering'e Giriş

Preparing Video For Download...