在图并行计算中处理相互依赖的文件

时间:2020-03-28 07:20:57

标签: python-3.x parallel-processing dask dask-delayed

我正在尝试通过使用dask.delayed(或由MCVE我自己)创建任务图来并行化以下代码(implementing a computational graph):

os.chdir('./kitchen1')
write_dough()   # writes file ./dough
write_topping() # writes file ./topping
write_pizza()   # requires ./dough and ./topping; writes ./pizza

我看到2个困难:

  1. write_dough不返回任何内容。 z=x+y使变量之间的依存关系清楚;这不是。 Dask doesn’t recommend relying on side effects。有惯用的解决方案吗?
  2. os.chdir。如何将其合并到计算图中?
  3. 我不关心文件IO,性能等的并行化。

这是我当前的解决方案。它增加了复杂性,'./kitchen1'无处不在,这很丑陋。一个好的解决方案是什么?

write_dough, write_topping, write_pizza = map(dask.delayed, (write_dough, write_topping, write_pizza))

dough = write_dough('./kitchen1')
topping = write_topping('./kitchen1')
pizza = write_pizza(dough, topping, './kitchen1')

1 个答案:

答案 0 :(得分:0)

我建议您当前明确地通过依赖关系的方法。

相关问题