小编Luc*_*s H的帖子

如何使用 Numba + Dask 正确并行化通用代码

我是使用DaskNumba加速代码的新手,我希望这对用户来说是一个有价值的问题,可以帮助他们获得有关如何并行化代码的最佳实践的答案。我已经制作了一个包含 3 列的数据框的通用测试用例pandas

将在框架中的 3 个向量上实现通用函数,以表示数据分析中可能进行的转换类型:前两列进行平方、相加,然后取平方根,然后是布尔值将结果与第三列进行比较计算。

我实现了 4 个测试用例:(a) a pandasapply、(b) Dask、(c)Numba和 (d)Dask以及Numba在一起。

Numba效果很好。我所有的问题都与Dask. 以下是我遇到的问题:

  1. Dask,无论我制作什么大小的向量,都会更慢。我可能不完全理解如何以及何时计算数据帧的某些部分,或者如何使其正确并行化。它比常规申请慢。
  2. 如何正确使用Dask进行并行化?我将其设计为 4 个分区,并且有 2 个核心处理器,但是您实际上如何决定如何格式化它?
# Practice parallelizing
from dask import dataframe as dd
from numba import jit
import pandas as pd
import numpy as np
import time

# df is going to be the regular dataframe
df = pd.DataFrame(np.random.random(size=(1000000,3))*100,columns=['col1','col2','col3'])

# ddf is the dask dataframe …
Run Code Online (Sandbox Code Playgroud)

numpy pandas numba dask

3
推荐指数
1
解决办法
2965
查看次数

标签 统计

dask ×1

numba ×1

numpy ×1

pandas ×1