首页 > 解决方案 > 在尚未开始计算的情况下持续存在内存延迟

问题描述

我的 python 工具包中有多个计算树,但当前分析并不需要所有计算树:

a1 = build_a1().persist()
a2 = build_a2(a1).persist()
a3 = build_a3(a2)

b1 = build_b1().persist()
b2 = build_b2(b1).persist()
b3 = build_b3(b2)

然后我只对'a'分支感兴趣,所以我这样做:

a3.compute()     # Target result, very long to compute
a[1,2].compute() # Intermediate cached result, quick in-memory access

问题是,当我使用persist() 时,它会自动对每个项目(即:a*、b*)启动异步分布式计算,即使我最终只对特定分支感兴趣。

理想情况下,我希望保持延迟,但稍后使用以下任一方式开始计算:

d.persist(compute=False)

或者

@dask.delayed(keep_in_memory=true)
def build_a1():
    [...]

标签: pythondask-delayed

解决方案


推荐阅读