这是Dask opportunistic caching in custom graphs的扩展名。现在假设我有一个自定义图形,如下所示:
dag = {'load': (load, 'myfile.txt'),
'heavy_comp': (heavy_comp, 'load'),
'simple_comp_1': (sc_1, 'heavy_comp'),
'simple_comp_2': (sc_2, 'heavy_comp'),
'simple_comp_3': (sc_3, 'heavy_comp'),
'merger_comp': (merge, 'simple_comp_1', 'simple_comp_2', 'simple_comp_3')}
我仅对最后一个键执行Dask计算:
import dask
dask.get(dag, 'merger_comp')
这似乎在heavy_comp
,simple_comp_1
和simple_comp_2
的三个函数中每次都调用函数simple_comp_3
。有没有一种方法可以使Dask缓存或存储heavy_comp
的结果,因此它只被调用一次?
答案 0 :(得分:0)
这似乎为simple_comp_1,simple_comp_2和simple_comp_3分别调用了函数heavy_comp三次。有没有办法让Dask缓存或存储heavy_comp的结果,以便只调用一次?
如评论中所述。 Dask不会三次计算该函数。它只计算一次并共享中间结果。
(很高兴提供答案而不是发表评论,以便维护人员知道他们将来不必跟踪此问题)