在dask中设计计算图

时间:2018-06-15 15:57:30

标签: python dask dask-distributed dask-delayed

到目前为止,我已经使用带有get的dask和一个字典来定义我的任务的依赖关系图。但这意味着我必须从一开始就定义我的所有图形,现在我想不时添加新任务(依赖于旧任务)。

我已经了解了distributed包,看起来很合适。我已经看到了两种可能的选项来定义我的图表:

  1. 使用delayed,并定义每个任务之间的依赖关系:

    t1 = delayed(f)()
    t2 = delayed(g1)(t1)
    t3 = delayed(g2)(t1)
    dask.compute([t2, t3])
    
  2. 使用map / submit,并执行以下操作:

    t1 = client.submit(f)
    t2 = client.map(g1, [t1])[0]
    t3 = client.map(g2, [t1])[0]
    
  3. 您认为哪种更合适? 谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的目标是随着时间的推移改变计算,那么您应该使用此处描述的Dask的concurrent.futures API:

http://dask.pydata.org/en/latest/futures.html