如何与Dask

时间:2019-03-13 13:04:31

标签: dask dask-distributed dask-delayed

我有一个图像处理图,我想批量处理许多图像。我的图如下所示: My graph made from delayed functions

当我运行图bokeh时,执行路径如下所示: How I observe it to run in bokeh

这会导致我的机器用尽内存并崩溃,因为加载映像的输出为兆字节的映像。我希望图形像这样运行,因为保存结果的结果很小,应该可以: How I want it to run in bokeh

我怎样才能做到这一点?

Customizing Optimization在可能融合中间节点的地方似乎很有用。这是最好的方法吗?

1 个答案:

答案 0 :(得分:1)

Dask倾向于执行可以释放内存的任务,这在您的示例中应该是深度的。但是,它也为您提供了并行性。所以最简单的方法可能就是只有一个工人。

实际上,图中的线性链对于保险丝来说是一个很好的例子。您可以调用自己进行优化(dask.optimization.inline_functionsdask.optimization.fuse,不需要自定义),也可以编写一个函数来依次显式调用单个任务中的每个子任务(save(process(load(..))) )。