如何结合dask和类?

时间:2017-12-19 13:04:15

标签: python dask dask-distributed

我正在尝试重写一个用类开发的整个项目。渐渐地,最重的计算块应该并行化,显然我们有很多独立的顺序循环。一个模仿行为的类的例子是这个玩具问题(我是一个痴迷于p-sums的数学家):

class Summer:
    def __init__(self, p):
        self.p = p
    def sum(self):
        return sum(pow(i,-self.p) for i in range(1,1000000))

total = sum([Summer(p).sum() for p in range(2,20)])

如果我将最后一行替换为:

from dask.distributed import Client
def psum(p): return Summer(p).sum()
client = Client()
A = client.map(psum,range(2,20))
total=client.submit(sum,A).result()

我的运行时间为4(我的机器上可用的核心数)。如果我使用数据密集的实际类(占用内存的大熊猫结构),这种理想的行为不会持续存在。是否有推荐的dask.distributed替代方案?我看到了很糟糕的减速,我将其归结为传递数据。

0 个答案:

没有答案