การประมวลผลแบบขนานคืออะไร

Data Engineering เบื้องต้น

Vincent Vankrunkelsven

Data Engineer @ DataCamp

แนวคิดของการประมวลผลแบบขนาน

พื้นฐานของเครื่องมือประมวลผลข้อมูลยุคใหม่

  • หน่วยความจำ
  • พลังการประมวลผล

แนวคิด

  • แบ่งงานออกเป็นงานย่อย
  • กระจายงานย่อยไปยังคอมพิวเตอร์หลายเครื่อง
  • ทำงานร่วมกันเพื่อให้งานเสร็จสมบูรณ์

ไดอะแกรมแสดงการแบ่งงานออกเป็นงานย่อย

Data Engineering เบื้องต้น

ร้านตัดเสื้อ

ไดอะแกรมแสดงร้านตัดเย็บ

การบริหารร้านตัดเสื้อ

เป้าหมาย: เสื้อ 100 ตัว

  • ช่างฝีมือดีที่สุด ตัดเสื้อได้ / 20 นาที
  • ช่างคนอื่น ตัดเสื้อได้ / 1 ชั่วโมง

 

ช่างหลายคนทำงานร่วมกัน > ช่างที่ดีที่สุดคนเดียว

Data Engineering เบื้องต้น

ข้อดีของการประมวลผลแบบขนาน

  • พลังการประมวลผล
  • หน่วยความจำ: แบ่งพาร์ทิชันชุดข้อมูล

 

แรม (RAM memory chip): ภาพแสดงชิปหน่วยความจำ RAM

Data Engineering เบื้องต้น

ความเสี่ยงของการประมวลผลแบบขนาน

ค่าใช้จ่ายส่วนเกินจากการสื่อสาร

 

  • งานต้องมีขนาดใหญ่เพียงพอ
  • ต้องใช้หน่วยประมวลผลหลายหน่วย

 

Parallel slowdown: กราฟแสดง parallel slowdown

Data Engineering เบื้องต้น

ตัวอย่าง

 

ไดอะแกรมแสดงตัวอย่างกีฬาโอลิมปิก

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)
Data Engineering เบื้องต้น

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 เบื้องต้น

มาฝึกกันเถอะ!

Data Engineering เบื้องต้น

Preparing Video For Download...