【问题标题】:Dealing with interdependent files in graph-parallel computation在图形并行计算中处理相互依赖的文件
【发布时间】:2020-03-28 07:20:57
【问题描述】:

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

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')

【问题讨论】:

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


    【解决方案1】:

    我会推荐您当前明确传递依赖项的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-08
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 2013-12-09
      • 2014-09-08
      • 2018-10-19
      • 2018-08-11
      相关资源
      最近更新 更多