【问题标题】:Passing Futures as arguments in Dask在 Dask 中将 Futures 作为参数传递
【发布时间】:2018-03-12 23:30:20
【问题描述】:

Future 传递给Dask Delayed 函数以使Future 保持完整的最佳方法是什么?换句话说,我们如何确保函数会得到实际的Future,而不是它所代表的结果?

【问题讨论】:

    标签: dask dask-distributed dask-delayed


    【解决方案1】:

    通常语义是 dask.delayed 函数得到具体的结果,而不是 dask-y 的结果。如果没有一些技巧,今天是不容易支持的。

    话虽如此,我推荐以下技巧:

    把你的未来放在Variable

    import dask
    from dask.distributed import Client, Variable
    client = Client()
    
    v = Variable()
    
    @dask.delayed
    def f(v):
        return v.get().result()
    
    future = client.scatter(123)
    f(future).compute()
    # 123
    

    【讨论】:

    • 谢谢。这似乎是合理的。还发现dask.core.literal 有效,这样用起来合理吗?
    • 嗯,是的,这似乎是一个更好的主意。我建议提出 PR 以将其推送到顶级 API 并 ping jcrist 以了解他的想法。
    猜你喜欢
    • 1970-01-01
    • 2015-12-09
    • 2020-09-13
    • 2018-09-25
    • 2012-09-03
    • 1970-01-01
    • 2023-03-08
    • 2014-05-04
    • 2011-02-08
    相关资源
    最近更新 更多