什么是并行计算

Data Engineering 入门

Vincent Vankrunkelsven

Data Engineer @ DataCamp

并行计算的思路

现代数据处理工具的基础

  • 内存
  • 处理能力

思路

  • 将任务拆分为子任务
  • 将子任务分配到多台计算机
  • 协同完成任务

任务被拆分为子任务的示意图

Data Engineering 入门

裁缝店示例

裁缝店示意图

经营一家裁缝店

目标:100 件衬衫

  • 最优秀的裁缝:20 分钟/件
  • 其他裁缝:1 小时/件

 

多名裁缝协作 > 最优秀的裁缝

Data Engineering 入门

并行计算的优势

  • 处理能力
  • 内存:对数据集分区

 

RAM 内存条RAM 内存条图片

Data Engineering 入门

并行计算的风险

通信开销

 

  • 任务需足够大
  • 需要多个处理单元

 

并行减速显示并行减速的图

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

# 将数据帧分成 4 个分区 athlete_events_dask = dd.from_pandas(athlete_events, npartitions = 4)
# 在各分区并行计算 result_df = athlete_events_dask.groupby('Year').Age.mean().compute()
Data Engineering 入门

Passons à la pratique !

Data Engineering 入门

Preparing Video For Download...